0

我目前正在使用 Vuex 和 Vue 建立一个项目,但遇到了一个奇怪的问题。我推测它与渲染顺序有关,但经过多次尝试更改代码无济于事,我仍然不确定。

我尝试的是使用父级中的 getter 访问状态并使用插槽传递它,而不是直接在子级中传递它,因为它应该是并且我将在此处发布。

我尝试使用$this.$store.state仍然未定义的值传递值,但是在控制台使用实例上的方法记录它时,所有数据都在那里。

这是我的代码的链接。

那里的错误类似于我自己的控制台中的错误:

[Vue warn]: Error in render: "TypeError: Cannot read property 'state' of undefined"

提前感谢任何愿意花时间看它的人。

PS:将其更改store.state.stake.value为内容显示后,会出现另一个错误,即[Vue warn]: Invalid handler for event "click": got undefined

4

2 回答 2

2

强调文本在您的突变中,您正在使用this.$store.state. 这是错误的,因为this它不指向 vue 实例。

突变处理程序接收state作为第一个参数:

myMutation(state){
    //use state argumentt to access state
}

这是更新的代码沙箱

还有一件事:mapMutations是将组件方法映射到store.commit调用的助手。所以它们只是组件中的方法将它添加到methods选项而不是computed因为它们不计算任何东西

于 2018-07-23T08:32:18.050 回答
0

将 state 作为参数传递给你的 mutation 函数,如下所示:

increment(state) { 
  state.stake.value += 1;
},

您不需要这样做。$store 在您的商店中。仅在您的 Vue 组件中

于 2018-07-23T08:38:29.280 回答