Vue.js - 我的多手风琴菜单组件无法通过切换标志工作

鸣波

我正在使用Vue。MultiAccordion为我的测试用例创建了组件。我想按status[index]标志打开幻灯片但是这个组件不起作用。为什么这不起作用?

var MultiAccordion = {
    data: function() {
        return {
            items: [
                'cat',
                'dog',
                'bird',
            ],
            status: [],
        };
    },
    created: function() {
        for (let i = 0; i < this.items.length; ++i) {
            this.status.push(false);
        }
    },
    methods: {
        handleToggle: function(index) {
            this.status[index] = !this.status[index];
        },
    },
    template: `
    <ul>
        <li v-for="(val, index) in items">
            <button @click="handleToggle(index)">toggle</button>
            <div v-if="status[index]">
                {{ val }}
            </div>
        </li>
    </ul>
    `,
};
西多姆

由于 JavaScript 的限制,当你通过 index 赋值时,Vue 无法检测到数组的变化,即以下不是响应式的:

this.status[index] = !this.status[index];

你要么必须使用Vue.set

this.$set(this.status, index, !this.status[index])

或使用splice

this.status.splice(index, 1, !this.status[index])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章