【发布时间】:2018-10-23 10:13:14
【问题描述】:
我尝试在计算数据中设置 v-if 值,作为道具传递,并且只是对状态的直接引用,但尽管我检查的状态已更改为 true,但它永远不会重新呈现。
目前我有它直接引用商店
<template v-if="this.$store.state.showReviews">
我在我的 Vuex Action 中执行 AJAX 请求
getBikeReviews(context, i){
console.log("getBikeReviews");
axios.get('http://mpaccione.com/wp-content/themes/webdev/projects/Web_Design_4/Creating_Online_Store/api/get_reviews.php?index='+i).then((res) => {
context.commit('storeBikeReviews', {"index": i, "json": res.data});
context.commit('showReviews', true);
});
}
状态变为真
showReviews (state, payload){
console.log("showReviews");
state.showReviews = payload;
}
但是模板永远不会重新渲染。
【问题讨论】:
-
showReviews最初是在你的 vuexstate中声明的吗? Vue 无法检测到属性添加。 -
是的,它最初是在我的州声明的... const state = { bikes: [], reviews: [], showReviews: false, uploadProgress: [] }
-
你不要在模板
<template v-if="$store.state.showReviews">中使用this -
我已经进行了更改,但结果相同。我用 {{ }} 检查了商店,它返回 true,但没有重新渲染。
标签: javascript ajax vue.js axios vuex