Vue.js Vuex:Mount()和computed()是从同一个组件执行的,我的数据不是先加载的吗?
我使用Vue.js Vuex:Mount()和computed()是从同一个组件执行的,我的数据不是先加载的吗?,vue.js,vuejs2,vuex,Vue.js,Vuejs2,Vuex,我使用action获取所有产品,然后在同一组件上使用computed方法显示数据。这是组件: <template v-for="product in allProducts"> <div class="ap-table-content"> {{ product.product_name }} </div> <div class="ap-table-content">
action
获取所有产品,然后在同一组件上使用computed
方法显示数据。这是组件
:
<template v-for="product in allProducts">
<div class="ap-table-content">
{{ product.product_name }}
</div>
<div class="ap-table-content">
{{ product.code }}
</div>
</template>
在my store.js上,我将我的商店设置为:
state: {
allProducts : {}
},
getters: {
allProducts: state=>{
return state.allProducts;
}
},
actions:{
fetchAllProducts : async({commit, state})=>{
await axios.get('/products')
.then(response => {
commit('storeProducts', response.data);
})
.catch(err => console.log(err));
},
}
解决方案:
那是我的变种人。我在对象中分配了一个数组块,但没有获得state.property
,其中computed
丢失了它的值
storeProducts(state, data){
Object.assign(state.allProducts, data);
}
这种突变是罪魁祸首。
有人能给我更好的选项在state附加数据吗?JavaScript是一种区分大小写的语言。您试图使用名为allProducts
的getter,但您在商店getters
中声明的是allProducts
,这就是您的数据未显示的原因
将getter函数修改为allProducts
,而不是allProducts
getters: {
allProducts: state=>{
return state.allProducts;
}
},
我还注意到您在模块中使用了store:{allProducts:{}}
,而不是state
如果以后将其导出为状态
,则可以,但如果不是,则应将其更改为状态:{allProducts:{}
JavaScript是区分大小写的语言。您试图使用名为allProducts
的getter,但您在商店getters
中声明的是allProducts
,这就是您的数据未显示的原因
将getter函数修改为allProducts
,而不是allProducts
getters: {
allProducts: state=>{
return state.allProducts;
}
},
我还注意到您在模块中使用了store:{allProducts:{}}
,而不是state
如果以后将其导出为状态
,则可以,但如果不是,则应将其更改为状态:{allProducts:{}
否。。它不起作用。首先,没有数据,但它获取数据并提交到我的状态。第二次点击它,我就有了数据。只是一开始它不起作用。这不是反应性的我guess@ReyYoung您是否稍后在模块中将存储
键导出为状态
,因为它应该是状态
,而不是存储
。在哪里?我把它导出为一个store@ReyYoung我添加了我的意思的截图。如果你能创建一个代码沙盒来重现问题,那就更好了,因为它能更快地解决问题。。这是一个打字错误,对不起。。它不起作用。首先,没有数据,但它获取数据并提交到我的状态。第二次点击它,我就有了数据。只是一开始它不起作用。这不是反应性的我guess@ReyYoung您是否稍后在模块中将存储
键导出为状态
,因为它应该是状态
,而不是存储
。在哪里?我把它导出为一个store@ReyYoung我添加了我的意思的截图。如果你能创建一个代码沙盒来重现问题,那就更好了,因为它能更快地解决问题。。这是一个打字错误。我能看到storeProducts
突变吗?我能看到storeProducts
突变吗?