VueJS可拖动/可排序JSON无法更新

时间:2017-08-11 14:30:33

标签: javascript drag-and-drop vue.js vuejs2

嘿伙计们我正在使用这个lib,目前我正在尝试一个简单的排序,想象我有一个包含3个元素的数组我想用拖动改变他的位置,我能够在此时此刻。问题是,当我切换我的JSON数组不会更新的地方时。

我这样做:

我的清单:

 <draggable v-model="getDocumentAttributes">
        <div v-if="value.key != 'Document'" class="panel panel-primary" v-for="(value, key, index) in getDocumentAttributes">
            <div class="panel-body quote">
                <span @click="removeSection(index,key)" class="pull-right glyphicon glyphicon-remove text-info"></span>
                <p>{{value.key}}</p>
            </div>
        </div>
    </draggable>

听取vuex getter的计算道具:

getDocumentAttributes(){
    return this.$store.getters.getDocumentAttributes;
}

最终我的名单和我在vuex方面的吸气功能:

state: {
        document: { "id": "0", "atributes": [] },

[...]

  getDocumentAttributes: (state) => {
        return state.document.atributes;
    },

2 个答案:

答案 0 :(得分:2)

使用vue组件中的本地数据,这将由vue-draggable修改。

再次相同,你只能用突变来改变一个vuex状态。不是使用getter,不是使用计算属性而不是使用操作。默认情况下,计算属性只是在插件的自述文件中,您可以看到如何使用它们https://github.com/SortableJS/Vue.Draggable#with-vuex

答案 1 :(得分:0)

getDocumentAttributes: {
    get () {
        return this.$store.getters.getDocumentAttributes;
    }
    set (value) {
        this.$store.commit('YOUR.COMMIT.TYPE', value)
    }
}

Reiner提到默认情况下,计算属性是只读的。 这是如何改变它。