Javascript Vuex存储-回调不是函数

Javascript Vuex存储-回调不是函数,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,为什么我在Vuex存储中的此操作中不断出现错误“回调不是函数” updateRemoteUser: ({ state, commit }, callback) => { const user = state.user axios.put(`/users/${user.id}`, { user: user }) .then(response => { commit('changeUser', response.data.user)

为什么我在Vuex存储中的此操作中不断出现错误“回调不是函数”

updateRemoteUser: ({ state, commit }, callback) => {
  const user = state.user
  axios.put(`/users/${user.id}`, { 
    user: user
  })
    .then(response => {
      commit('changeUser', response.data.user)
      callback(true)
    })
    .catch(errors => {
      console.log(errors)
      callback(false)
    })
},
编辑 然后我把上面的动作称为:

async setResponses() {
  this.userResponse = await this.updateRemoteUser()
  if(this.userResponse) {
    this.$router.push({ name: 'weddingDetails' })
  }
  else {
    console.log("Something is jacked")
  }
},

检查回调是否实际传递给tee操作。一个简单的检查就会发现答案

if (!callback) console.log('tada');

当你称之为变异

this.updateRemoteUser({ 
    callback: (e) => console.log('do something') 
})
在你的Vuex上

updateRemoteUser: ({ state, commit }, data) => {
   const user = state.user
   axios.put(`/users/${user.id}`, { 
    user: user
  })
 .then(response => {
    commit('changeUser', response.data.user)
     if (data.callback) data.callback(true)
  })
  .catch(errors => {
    console.log(errors)
    if (data.callback) data.callback(false)
  })
},

你能告诉我们你调用action updateRemoteUser的代码行吗?@JohnSmith刚刚更新了我如何使用这些回调的问题。如果回调变量是任何基元类型或对象,这不会透露答案。最好检查回调是否为“function”类型。