Vuex - 传递给操作的参数丢失。替换为当前状态

Posted

技术标签:

【中文标题】Vuex - 传递给操作的参数丢失。替换为当前状态【英文标题】:Vuex - parameter passed to action gets lost. Replaced with current state 【发布时间】:2019-07-16 02:47:56 【问题描述】:

因此,在单击按钮时,我想创建一个对象并将其传递给我的操作。 不幸的是,即使是测试变量也不起作用。 在组件中调用操作:

submitFeedback()
  var jsonMessage = 'test message'
  console.log('test in menu: '+ jsonMessage)
  this [UC.SET_USER_FEEDBACK](jsonMessage)
  console.log('message sent')

执行动作:

 async [UC.SET_USER_FEEDBACK](feedbackFormData) 
    console.log('test in action:' + feedbackFormData)    

控制台中的结果:

test in menu: test message
test in action:[object Object]
message sent

该组件是否可能超出了 Vuex 的范围?它有来自 vuex 的 mapGetters、mapActions 和 mapState。

【问题讨论】:

【参考方案1】:

vuex action的第一个参数是context。 您应该传递额外的数据作为第二个参数。

async [UC.SET_USER_FEEDBACK](context, feedbackFormData) 
    console.log('test in action:' + feedbackFormData)    

【讨论】:

以上是关于Vuex - 传递给操作的参数丢失。替换为当前状态的主要内容,如果未能解决你的问题,请参考以下文章

将 Getter 传递给 Vuex Action 返回 null

测试是不是使用特定参数(来自组件)调用了 Vuex 操作

从头开始学习Vuex

在 beforeEach 期间将 vuex 模块状态传递给 vue-router

Vuejs98-从头开始学习Vuex

在 nuxt 中出现此错误:[vuex] 不要在突变处理程序之外改变 vuex 存储状态