在我的vue里.我正在try 交换这个应用程序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;
                    });
            }
        }
    }

但什么都没发生?我做错了什么?

推荐答案

虽然@dfsq使用index++是正确的,但由于无法观察到数组的本机Mutations ,Vue无法识别它们.你必须使用Mutations 方法来改变它们.

试试这个:

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

我还没有测试过,可以的时候我会编辑的.

Vue.js相关问答推荐

vue js如何将布尔值传到数据库

当用户在嵌套路由中时激活链接

TailwindCSS 为什么前者比后者重要?

使用 Vue.js 清除数组内容和react性问题

我可以在打印 HTML 页面时使用作用域 CSS 吗? (使用 Laravel 和 Vue.js)

如何在 vue 路由中导航到 Bootstrap-vue 选项卡中的特定选项卡?

带有参数的 Vuex 映射 Getter - 缓存?

Vue子组件等待props

避免在运行时向 Vue 实例或其根 $data 添加响应式属性

未捕获的类型错误:无法读取未定义的属性initializeApp

正确实现 Vue.js + DataTables

VueJS 将 HTML 打印到页面

如何在 Vue.js 中触发点击 ref

错误:vue-loader 要求 @vue/compiler-sfc 存在于依赖树中

Nuxt 应用程序在刷新动态路由时返回 404(Tomcat 服务器)

Jest错误找不到模块....

Vue 3 组合 API,如何在 setup() 函数中获取上下文父属性?

在手动安装的 vue 组件中使用 vuex

如何确定 Vue 何时完成更新 DOM?

VueJS 复选框更新