2017-06-08 4 views
0

i daymic Schablonenelement mit Ajax-Funktion die Daten übertragen ändern, aber genau ist es nicht die Ansicht immedidately aktualisieren, hier ist der pseude Code:vue Vorlage mit v-if Basis auf Ajax Ergebnis

<template v-if="userInfo.nickName"> 
    <div class="base-info" v-show="userInfo.nickName"> 
    <p>欢迎,{{this.userInfo.nickName}} <a href="javascript:;" @click="logout">退出</a></p> 
    </div> 
</template> 
<template v-else> 
    <div class="base-crud"> 
    <el-button @click="toLogin" type="primary">登录</el-button> 
    <el-button @click="toRegister" type="primary">注册</el-button> 
    </div> 
</template> 

mounted() { 
    // the updateUserInfo is an vuex action fn, the userInfo was come from vuex store data 
    ajaxFn().then((data) => this.updateUserInfo(data)); 
} 
+1

"Die Ansicht wird nicht sofort aktualisiert" Da es wahrscheinlich ein asynchroner Anruf ist? Was ist deine Frage? – thanksd

+0

Ich habe die Frage gefunden 'Object.assign (state.userInfo, data)' replace zu 'state.userInfo = Object.assign ({}, state.userInfo, data)'; – lichenbuliren

Antwort

0

Ich habe das Problem gefunden: ersetzen Sie einfach Object.assign(state.userInfo, data) zu state.userInfo = Object.assign({}, state.userInfo, data) in der Store-Aktion fn; Es ist meine Schuld, Entschuldigung !!