recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème de mise à jour asynchrone de Vuex

 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;
},

};

迷茫迷茫2837 Il y a quelques jours464

répondre à tous(2)je répondrai

  • 为情所困

    为情所困2017-05-18 10:59:51

    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

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-18 10:59:51

    Ceci dans la fonction flèche n'est pas une instance de vue, il ne sera donc pas mis à jour.

    répondre
    0
  • Annulerrépondre