【问题标题】:Vuex user duplicates itself instead of updating itselfVuex 用户复制自己而不是更新自己
【发布时间】:2022-06-20 21:41:03
【问题描述】:

我有一个用户表和一个方法,负责通过 axios 将它们存储在数据库中。

async saveUser({ commit }, user) {
            let createdUser;

            if (user.id) {
                createdUser = await http.put(`/users/${user.id}`, user);
                commit('addUser', createdUser.data);
            } else {
                createdUser = await http.post('/users', user);
                commit('addUser', createdUser.data);
            }
        },

添加一切都很好,但是在编辑用户时,不是更新用户,而是添加了带有更改数据的副本。拥有旧数据的用户只有在页面刷新时才会消失。

 mutations: {
    addUser(state, data) {
            state.users.unshift(data);
        },
}

我想找到一种方法来消除重复,以便立即更新用户

【问题讨论】:

    标签: javascript node.js vuejs2 vuetify.js vuex


    【解决方案1】:

    在您的操作方法中尝试创建一个更新方法。例如

        mutations: {
          updateTask(state, payload) {
            let task = state.user.filter((userData) => userData.id == payload.id)[0];
            task.userId= payload.id;
          },
        }, 
        actions: {
    
        updateTask({ commit }, payload) {
          db.collection("userData")
            .doc({ id: payload.id })
            .update({
              userId: payload.id,
            })
            .then(() => {
              commit("updateTask", payload);
            });
        },
    }
    

    确保您在“有效负载”中传递用户 ID,并使用您的 axios 方法更新 db.collection()。希望你觉得这很有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-21
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多