this.$store.dispatch('analyzesDetail', id).then(() => {
this.temp = this.$store.state.nlp.analyzesDetail.content;
//...
});
Je reçois l'analyseDetail dans l'état une fois l'action analyseDetail terminée. Pourquoi s'agit-il toujours des données précédentes ?
.action
analyzesDetail({commit}, id){
return new Promise((resolve, reject) => {
setTimeout(() => {
request(
{
method: 'get',
url: `/agent/nlp/analyze/${id}`,
},
{type: nlpTYPE.ANALYZES_DETAIL},
{type: nlpTYPE.ANALYZES_DETAIL_ERROR, message: '获取分析详细失败'},
commit);
resolve()
}, 100)
})
},
const mutations = {
[nlpTYPE.SEGMENT] (state, payload) {
state.segment = payload;
},
[nlpTYPE.ANALYZE] (state, payload) {
state.analyze = payload;
},
[nlpTYPE.CURRENT_ANALYZE] (state, payload) {
state.currentAnalyze = payload;
},
[nlpTYPE.ANALYZES] (state, payload) {
state.analyzes = payload;
},
[nlpTYPE.ANALYZES_ID] (state, payload) {
state.analyzesId = payload;
},
[nlpTYPE.ANALYZES_DETAIL] (state, payload) {
state.analyzesDetail = payload;
},
};
Utilisez watch pour résoudre ce problème, utilisez watch pour surveiller analyserDetail, puis calculez les données souhaitées une fois les changements effectués ; mais je pense que ce n'est qu'une solution temporaire, je peux toujours comprendre pourquoi la promesse ne fonctionne pas
Ceci dans la fonction flèche n'est pas une instance de vue, il ne sera donc pas mis à jour.