未定义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