gpt4 book ai didi

javascript - VueJs2 计算不更新。为什么?

转载 作者:行者123 更新时间:2023-11-29 21:00:07 26 4
gpt4 key购买 nike

我有更新的 grid example来自官方的例子。在我的应用程序中需要将填充 sortOrders 数组移动到

 created: function () {
var vm = this;
this.columns.forEach(function (key) {
vm.sortOrders[key] = 1
})
},

尝试对列进行排序,但排序只发生一次。

重现步骤:单击以“命名”列标题 1 次以上。期望:每次单击列标题时列排序得到:只对列进行一次排序。

https://jsfiddle.net/xkkbfL3L/1916

不明白为什么

Vue.set(this.sortOrders, key, order);

不要强制使用 this.sortOrders 变量

如果像这样使用 tmp 变量就可以正常工作

   var order = this.sortOrders[key]*-1;
var tmp = this.sortOrders ;
Vue.set(tmp, key, order);
this.sortOrders = [];
this.sortOrders = tmp;

https://jsfiddle.net/xkkbfL3L/1919/

最佳答案

当您将 1 更改为 -1 时,Vue 似乎没有触发更新,对我来说这似乎不是预期的行为。可能值得filing an issue在 Vue 的 Github 页面上,其中一位 vue 开发人员可能能够解释有关此行为的更多信息。然而,作为一种快速解决方法,您可以在应用更新的键值之前简单地将 this.sortKey 设置为 null:

sortBy: function (key) {
this.sortKey = null;
this.sortKey = key;
var order = this.sortOrders[key]*-1;
Vue.set(this.sortOrders, key, order);
}

这是 JSFiddle:https://jsfiddle.net/xkkbfL3L/1920/

关于javascript - VueJs2 计算不更新。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46954228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com