gpt4 book ai didi

javascript - Vue.js Vuex 状态更改不会使用 v-if 重新渲染模板

转载 作者:行者123 更新时间:2023-11-30 20:31:13 25 4
gpt4 key购买 nike

我已经尝试在计算数据中设置 v-if 值,作为 props 传递并且只是对状态的直接引用,但它永远不会重新呈现,尽管我检查的状态已更改为 true。

目前我有它直接引用商店

<template v-if="this.$store.state.showReviews">

我在我的 Vuex 操作中执行 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;
}

但是模板永远不会重新呈现。

最佳答案

您是否尝试过使用 getter 或计算值?

computed: {
showReviews() {
return this.$store.state.reviews || []
},
reviews() {
return this.$store.state.showReviews === true
}
}

此外,最好尽可能使用 Vue.$set 而不是简单的赋值。

Import Vue from 'vue';

showReviews (state, payload){
Vue.$set(state, 'showReviews', payload);
}

虽然这可能无法解决某些值类型的问题,恕我直言,始终应用是个好主意,这样您就不会忘记确实需要它的那个。

最后,如果您真的很难启动 react 性,您可以通过调用 this.$forceUpdate(); (或 Vue.$forceUpdate();) 在你的突变之后

关于javascript - Vue.js Vuex 状态更改不会使用 v-if 重新渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50318664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com