state.jsstate:{ data:{}}mutation.jstype.data (state, arg) { return state.data = arg}action.jscommit(types.data, {a: 111, b: 222})getters.jsexport const data = (state) => { return state.data}在組件的methods方法中調(diào)用,非模板template里.this.$store.getters.data //{a:111, b:222}this.$store.state.data //{a:111, b:222}但是,直接調(diào)取值就不可以.this.$store.getters.data.a // undefinedthis.$store.state.data.a // undefined請(qǐng)教一下,怎么在組件中可以直接調(diào)用啊~?
1 回答

牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
state.js state: { remind: {} } mutation_types.jsexport const REMAIND = 'REMAIND'mutation.js [type.REMIND] (state, arg) { state.remind = arg } actions.js getdata ({state, commit}, arg) { ..., commit(types.REMAIND, {free: res.data.freeNum, queue: res.data.queueNum}) } getters.jsexport const remind = (state) => { return state.remind } test.vue methods:{ submit () { this.$store.dispatch('getData') console.log(this.$store.getters.remind) // {obj....arry(0)} console.log(this.$store.getters.remind.free) // undefined console.log(this.$store.getters.remind.queue) // undefined } }
點(diǎn)擊submit 第一次得到的都是空
第二次點(diǎn)擊submit的是時(shí)候,就都有值了..
state,和 getters 都是這樣的,為什么呢?
添加回答
舉報(bào)
0/150
提交
取消