2017-06-29 7 views
0

私たちは既存のプロジェクトにmobxを統合し始めていますが、まだ私が完全に把握していないいくつかのコンセプトがあります。Mobxでの計算値の使用方法は?

これらのうちの1つは計算された値ですが、実際の使用はどうですか?

は、あなたが見ることができるように、私はこの店

const UserStore = observable({ 
    user: null, 

    setUser: action(user => { 
    UserStore.user = user; 
    }), 

    unsetUser: action(() => { 
    UserStore.user = null; 
    }), 

    isAdmin: computed(() => { 
    return UserStore.user && UserStore.admin; 
    }), 

    isAdmin() { 
    return this.user && this.user.admin; 
    }, 
}); 

があると、私は計算されたisAdminと「定期的な」isAdminの両方を用意しました。私のプロジェクトで使用すると両方とも動作するように見えるので、実際には計算された値の使用方法はわかりません。

答えて

0

計算された値がキャッシュされます。 referenceは言う:前の計算に使用されるデータのどれもが、あなたの場合、簡単な論理演算では

を変更しない場合

計算されたプロパティが再実行されません、これは与えることはありませんあなたはずっと(そしてたぶん遅いかもしれません)。しかし、より高価な計算に使うことができます。

+0

うーん、意味があります。私が現在苦労しているもう一つのことは、アクションとしての 'UserStore.isAdmin'がストアにバインドされた' this'環境を持っていないことです。 'thisを参照したい場合は、 .user'。それに対する解決策はありますか? – NeglexisMusic

関連する問題