我的代码如下:
https://jsfiddle.net/2g7m5qy5/139/
初始虚拟按钮被禁用。输入值更改后,将启用“虚拟”按钮。
假设我有以下一系列事件:
我真正想要的是在按下“提交”后立即在上面的步骤(4)中禁用“虚拟”按钮。
由于某些原因,在以下代码行之后没有更改:
that.initialValues[index] = value;
如何在按下“提交”后立即禁用“虚拟”按钮?
答案 0 :(得分:1)
此问题与反应性有关。
从数组中更改元素不会使基于此数组的计算结果重新呈现。
您在这里有多种选择:
在您的submit
方法中,您可以创建数组的副本,更改元素,然后在Vue实例中重新分配数组:
submit: function(value, index) {
setTimeout(() => {
const initialValues = [ ...this.initialValues ]
initialValues[index] = value;
this.initialValues = initialValues
}, 100);
}
您还可以使用$set
方法来设置新值并进行重新渲染:
submit: function(value, index) {
setTimeout(() => {
this.$set(this.initialValues, index, value)
}, 100);
}