javascript - Vue.js v-if 里面的 v-for 没有主动监听数组变化

标签 javascript arrays multidimensional-array vue.js

我正在尝试为数组内的每个数组显示一个元素,并在其数组包含真 bool 值时显示该元素。 if 函数第一次运行,但当值改变时元素不会消失。

<li v-for="(value, index) in list">
    <span> {{ value[0] }} </span>
    <span v-if='value[1]'> {{ value[2] }} </span>
</li>


var List = new Vue({
    el: "#List",
    data: {
        list: ['fizz',true,0],

    },
    methods: {
        toggleItem: function(index) {
            this.list[index][1] = !this.list[index][1];
        },

    }
})

我应该能够运行

List.toggleItem(0)

最佳答案

如果您要更新 Vue 中的数组,请使用 Vue.set(); 以便 Vue 可以跟踪更改并更新模板

例如,

Vue.set(value, 1, false);

注意:像这样简单更新 value[1] = false; 这不起作用

了解更多,https://v2.vuejs.org/v2/guide/list.html#Caveats

关于javascript - Vue.js v-if 里面的 v-for 没有主动监听数组变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46398408/

相关文章:

javascript - 将变量传递到数组中间字符串

c# - 将多维数组从 C# 传递到 C++ DLL

c++ - vector <int> V[]和 vector <vector<int>> V的区别

javascript - 重新加载页面时出现状态未定义错误

javascript - 将 Canvas 下载为 PNG 图像

javascript - React-Intl 如何从变量切换语言环境和消息

javascript - 范围内的publish_actions不触发第二个对话框

java - 无缝地将数组和列表传入和传出 Nashorn

javascript - sub ng-repeats,以 Angular 获取(选中)复选框值

java - 填充 2D 数组 Java