在我的vue.js应用程序中,我试图像这样交换2个论坛行:
export default {
data() {
return {
forums: []
}
},
methods: {
increment(forum, index) {
ForumService.increment(forum)
.then(() => {
let b = this.forums[index];
this.forums[index] = this.forums[index++];
this.forums[index++] = b;
});
}
}
}
但没有任何反应?我在这里做错了什么?
答案 0 :(得分:11)
虽然@dfsq对index++
的使用是正确的,但Vue由于无法观察它们而无法识别数组的原生突变。你必须使用变异方法来改变它们。
试试这个:
.then(() => {
let rows = [this.forums[index], this.forums[index + 1]];
this.forums.splice(index, 2, rows[1], rows[0] );
});
我没有测试过,我会在可以的时候进行编辑。