Vue: [Vue warn]: Die Eigenschaft oder Methode "index" ist nicht auf der Instanz definiert, wird aber beim Rendern referenziert.

Erstellt am 27. Sept. 2016  ·  3Kommentare  ·  Quelle: vuejs/vue

Vue.js-Version

2.0.0-rc.7

Was passiert eigentlich?

Ich versuche, mein Vue-Projekt 1.x auf 2.0.0 zu ändern, habe aber eine Warnung erhalten

main.js:20715 [Vue warn]: Die Eigenschaft oder Methode "index" ist nicht auf der Instanz definiert, wird aber beim Rendern referenziert. Stellen Sie sicher, dass Sie reaktive Dateneigenschaften in der Datenoption deklarieren. (zu finden in Komponente)

Code:

<template>
<div>
...
<a class="ui red label " v-for="(tag,index) in tags">
       {{tag}}
       <i class="delete icon" v-on:click="deleteTag(index)"></i>
 </a>
...
</div>
<template>
<script>

    module.exports = {
        data : function () {
            return {
                //form tags
                tags:[],
            }
        },
        methods : {

            deleteTag : function (deleteIndex) {
                this.tags.splice(deleteIndex,1);
            }
        }

    }

</script>

Was muss ich tun, um diese Warnung zu entfernen?

need repro

Hilfreichster Kommentar

Endlich habe ich das Problem gefunden. Ich habe vergessen, den Originalcode zu ändern in

(Registerkarte, Index)

in einer anderen Datei

warnen:

<a class="item" v-for="tab in tabs" :class="{active : activeTab==index}" @click="toggleActiveTab(index)">
            {{tab.name}}
        </a>

keine Warnung:

<a class="item" v-for="(tab,index) in tabs" :class="{active : activeTab==index}" @click="toggleActiveTab(index)">
            {{tab.name}}
        </a>

Alle 3 Kommentare

Endlich habe ich das Problem gefunden. Ich habe vergessen, den Originalcode zu ändern in

(Registerkarte, Index)

in einer anderen Datei

warnen:

<a class="item" v-for="tab in tabs" :class="{active : activeTab==index}" @click="toggleActiveTab(index)">
            {{tab.name}}
        </a>

keine Warnung:

<a class="item" v-for="(tab,index) in tabs" :class="{active : activeTab==index}" @click="toggleActiveTab(index)">
            {{tab.name}}
        </a>

Erstmal verzeiht mir diesen Beitrag, aber ich mache gerade eine ähnliche Situation durch..

Vue.js-Version
2.1.6

Vuex.js-Version
2.1.1

meine Datei action.js

 export const addForm = ({ Versand }) => {
 Versand('ADD_FORM')
 }

 export const deleteForm = ({ Versand }) => {
 Versand('DELETE_FORM')
 }

und meine Komponente.vue

 < Vorlage>
 < ul class="dropdown-menu">
 < li>
 < a @click="addForm"> speichern< /a> 
 < /li>
 < li>
 < a @click="deleteForm"> löschen< /a>
 < /li>
 < /ul>
 < /template>

das ist das ergebnis

vue.common.js?e881:519[Vue warn]: Die Eigenschaft oder Methode "addForm" ist in der Instanz nicht definiert, wird aber beim Rendern referenziert. Stellen Sie sicher, dass Sie reaktive Dateneigenschaften in der Datenoption deklarieren.
vue.common.js?e881:519 [Vue warn]: Die Eigenschaft oder Methode "deleteForm" ist in der Instanz nicht definiert, wird aber beim Rendern referenziert. Stellen Sie sicher, dass Sie reaktive Dateneigenschaften in der Datenoption deklarieren.

Was muss ich tun, um diese Warnung zu korrigieren?

@carvalhoviniciusluiz Sie sollten actions für eine Komponente definieren, siehe: http://vuex.vuejs.org/en/actions.html#dispatching -actions-in-components

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen