无法在动作中访问 vueX 中的对象值

Posted

技术标签:

【中文标题】无法在动作中访问 vueX 中的对象值【英文标题】:Cant access object values in vueX in actions 【发布时间】:2020-05-07 14:39:11 【问题描述】:

我正在 VueX 商店中编写一个方法,将转换为 json 的对象上传到 Firebase。 在操作中的 vuex 商店中,我创建了一个名为 scheduleTickets(purchase) 的方法,但在这些方法中我无法访问购买对象中的值。 但是,如果我提交一个突变函数并将对象发送给它,我可以访问它们,但不能从操作中访问它们。 我在这里做错了吗?

async scheduleTickets(purchase)
      let documents = JSON.stringify(purchase)
      for(let document of documents)
        console.log(document)
      
    

【问题讨论】:

您使用的是纯 javascript 还是任何类型的 TypeScript 模块? 我只是在使用 Vue Cli 你为什么JSON.stringifying你的数据?你想遍历 json-string 的字符吗? 【参考方案1】:

来自文档https://vuex.vuejs.org/guide/actions.html

const store = new Vuex.Store(
  state: 
    count: 0
  ,
  mutations: 
    increment (state) 
      state.count++
    
  ,
  actions: 
    increment (context) 
      context.commit('increment')
    
  
)

您应该至少有 2 个参数:context 和第二个 - payload。覆盖你的方法:

scheduleTickets(context, purchase)
      let documents = JSON.stringify(purchase)
      for(let document of documents)
        console.log(document)
      
    

你可以像这样发送它:

// dispatch with a payload
store.dispatch('scheduleTickets', purchase)

【讨论】:

以上是关于无法在动作中访问 vueX 中的对象值的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Vuex/Vuejs 中的动作中调用另一个动作?

Vuex:如何正确调用动作?

为 vuex 开玩笑,测试同一动作的不同返回值

从组件传递值作为参数状态还是访问动作创建者中的状态?

测试调用 Getter 和 Mutations 的 Vuex 动作

Vuex:从动作中调用 getter