Vue.js交换数组项

Jen*_*sen 7 javascript vue.js

在我的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;
                    });
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但没有任何反应?我在这做错了什么?

Jus*_*hur 11

虽然@dfsq对于index++Vue 的使用是正确的,但由于无法观察它们而无法识别阵列的原生突变.你必须使用变异方法来改变它们.

试试这个:

.then(() => {
  let rows = [this.forums[index], this.forums[index + 1]];
  this.forums.splice(index, 2, rows[1], rows[0] );
});
Run Code Online (Sandbox Code Playgroud)

我没有测试过,我会尽可能地编辑.