0
にアクションを呼び出す:Mobxが、これはコードで計算さプロパティ
@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));
}
ので、主な目標はしばらく、プロファイルデータがまだ検証されていない場合は、我々はその後、サーバーからそれを再フェッチします、ですデータが変更されるのを待って、ローカルストレージからキャッシュされた値を与えます。
Anddd ....私の質問は、なぜ私は '計算値はアクションfuntion'を呼び出すことができますか?
ありがとうございます! :D
私は[lazyObservable](https://github.com/mobxjs/mobx-utils#lazyobservable)が最適だと思います。しかし、それが他の観測可能なものを変更すると、他のコンポーネントの更新がトリガーされますか? – Chris