Javascript Vue反应性问题
我正在尝试连接两个数组,但由于异步获取其中一个数组,因此没有效果Javascript Vue反应性问题,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我正在尝试连接两个数组,但由于异步获取其中一个数组,因此没有效果 this.subcategories = [...this.subcategories, ...[ this.$store.getters['categories/subcategoriesOfCurrent'] ]]; 上面的Getter是在一些ms(服务器响应)之后设置的,所以当触发此分配时,Getter为空。设置状态(服务器响应)时,应该更新数组“子类别”,但不更新(但getter是)。如何解决 更多代码: 吸气剂: s
this.subcategories = [...this.subcategories, ...[ this.$store.getters['categories/subcategoriesOfCurrent'] ]];
上面的Getter是在一些ms(服务器响应)之后设置的,所以当触发此分配时,Getter为空。设置状态(服务器响应)时,应该更新数组“子类别”,但不更新(但getter是)。如何解决
更多代码:
吸气剂:
subcategoriesOfCurrent: (state: CategoriesState, getters: any) => {
return (getters.current && getters.current.subcategoryIds) ?
getters.current.subcategoryIds.map((id: string) => getters.all[id]) : [];
}
行动:
setCategory: ({ commit, dispatch }: ActionArgs, categoryId: string) => {
commit('setCategory', categoryId); //sets current category Id
dispatch('fetchSubcategories', categoryId); //fetching from server which commits updateCategorySubcategories
},
fetchSubcategories: ({ dispatch, commit }: ActionArgs, parentId: string): void => {
HttpService.getInstance().get(`/categories?parent_id=${parentId}`).subscribe(
result => {
commit('updateCategories', result.data);
commit('updateCategorySubcategories', { parentId, categories: result.data });
}
);
},
更新子类别ID的突变:
updateCategorySubcategories: (state: CategoriesState, { parentId, categories }: { parentId: string; categories: Category[] }): void => {
Vue.set(state.categories[state.currentCategoryId], 'subcategoryIds', categories.map(category => category.id));
},
为子类别创建一个计算值:
computed: {
subcategories() {
return [...this.subcategories, ...[ this.$store.getters['categories/subcategoriesOfCurrent'] ]];
}
}
由于计算道具是被动的,每次getter更改时它都会更改结果你是说
这个。$store.getter['categories/subcategoriesOfCurrent']
是异步的吗?@JaromandaX我添加了更多代码我不知道vue。。。但是。。。当你在一些ms(服务器响应)后说,
-你是说这个.store.getters['categories/subcategoriesOfCurrent']
是异步的吗?