私はmobxのほとんどを得ているように感じますが、何かを明確にしたいと思います。私はのコアは、オブジェクトの配列(typescriptです)で、いくつかの観測で店を持っている:mobxで計算/観測値を使用する場合
class ClientStore {
constructor() {
this.loadClients();
}
@observable private _clients: IClient[] = [];
@computed get clients() {
return this._clients;
}
@observable isFetching: boolean = false;
@observable sortField: 'title' | 'modified' = 'modified';
@observable sortDescending: boolean = true;
getClientByUrlName(urlName: string): IClient {
return this._clients.find(c => c.urlName === urlName);
}
etc...
私の質問は、その最後の関数である - getClientByUrlName。それは観察可能なものからのものなので、その関数を使用している@ observer反応コンポーネントは正しく再レンダリングされます。このようなことのために、この慣用的なmobxですか?それは計算された値でなければならないと感じます。私はそれを使用したいコンポーネントの計算値ですか?
//import singletone ClientStore
class ClientDetailsView extends React.Component<{params:{urlName:string}}, void> {
@computed get client() {
return ClientSotre.clients.find(c => c.urlName === this.props.params.urlName);
}
...rest of react component
ここでは、ベストプラクティスと問題点を探しています。どんな助けもありがとうございます。
*原則として@computed
で編集固定コードのサンプルエラー
ああ、ああ!それは私が行方不明だったようなものでした。私がドキュメントを見回すたびに、私はそれが真新しいかのように一部を見ます。面白いことに、コンポーネント自体に計算されたプロパティを貼り付けることは、私が質問を書いているときに私に来ました。 [オフトピック]私は、一般的に(私はreduxから変換している)一般的にMobXに似ています。それがどのように機能するかを知るほど、私はもっと好きです。すべてのハードワークをありがとう! – Jakke
私は実際に最後の日に文書を再構成しました。その印象は正しいです:) – mweststrate
私は、ストアではなくClientDetailsViewに '@ computed'を置くほうが少し戸惑っています。店内に置いても同じ効果がありますか? – Jeff