未定义vuex 3状态变量

我试图设置使用Vue的2.5.2和3.0.1 Vuex,我无法摆脱的唯一的应用程序是这样的警告:未定义vuex 3状态变量

[Vue warn]: Error in render: "TypeError: _vm.product is undefined"

产品只是和产品,储存在刚刚创建的Vue实例后执行的下一行之后被填满Vuex状态的数组元素:

vm.$store.dispatch('getProducts') 

在我的部分,我得到的产物,通过使用下一个计算的属性:

product: function() { 

return this.$store.getters.getProductById(this.id)

},

this.id由Vue的路由器发送(和被适当地定义)。吸气看起来是这样的:

getProductById: (state) => (id) => { 

return state.products.find(product => product.id === id)

},

出现此警告后,实际产品信息显示正常,所以我想这Vue公司试图加载和渲染信息Vuex实际检索之前它来自服务器。

关于如何使Vue等待Vuex以正确和有效的方式加载数据的任何想法?

回答:

我发现了这个问题。作为specified in the Vue 2 API,Vue只能保证一个对象在被正确初始化时会被动。

在我的Vuex状态中,我确实初始化了我试图通过this.$store.getters.getProductById(this.id)访问的产品对象。空的结构看起来像这样: product: {}

但我错过了一个数组,应该放置在产品的嵌套对象中。所以最后我通过初始化结构如下解决了这个问题: `

product: { 

color_group: {

colors: []

}

}

` ,那就是所有。

以上是 未定义vuex 3状态变量 的全部内容, 来源链接: utcz.com/qa/259831.html

回到顶部