Dies ist der Code:Mobx aufrufen Aktion auf Berechnete Eigenschaft
@computed
get user() {
if(!this.hasValidated)
this.reloadUserData();
return this.userData;
}
@action
reloadUserData() {
return new Promise(function(ok, err) {
if(!window.localStorage['atoken'])
err({id:24, detail:'User havn\'t logged in.'});
if(!window.localStorage['aprofile'])
apicall.get('user/detail').then((data)=>{
this.setProfile(data.data.content);
ok(true);
}).catch((derr)=>{
err({id:20, detail:derr});
});
else{
this.userData=JSON.parse(window.localStorage['aprofile']);
}
}.bind(this));
}
so, das Hauptziel ist es, wenn die Profildaten sind noch nicht bestätigt, werden wir es vom Server wieder beschaffen, dann, während Warten Sie die Daten geändert, geben wir ihnen den zwischengespeicherten Wert aus dem lokalen Speicher.
Anddd .... meine Frage ist, Warum gibt es mir eine "Berechneter Wert kann nicht Action funtion aufrufen" Ding?
Vielen Dank! : D
ich denke, dass [lazyObservable] (https://github.com/mobxjs/mobx-utils#lazyobservable) am besten passt. Aber wenn es das andere Observable ändert, löst es ein Update für andere Komponenten aus? – Chris