私は自動実行に問題があり、親の状態を設定しています。ReactJS + Tracker:親状態を更新する
カテゴリ
- サブ1
- サブ2
カテゴリーB
-
:例えば、私はまた、SUBCAT項目を有するcateogryアイテムを抱えています
- サブ3
- サブ今4
私はサブ4を訪れた場合、カテゴリーBと小4の状態がアクティブに行くべきです。サブカテゴリー項目呼び出す
export class CategorySubItem extends Tracker.Component {
constructor(props) {
super(props);
this.state = {
active: false
};
this.autorun(() => {
if(LayoutGlobals.get().categoryId == this.props.doc.id) {
this.setState({active:true});
this.props.parent.setState({active:true});
} else {
this.setState({active:false});
this.props.parent.setState({active:false});
}
});
}
:
<CategorySubItem doc={cat} key={cat.id} parent={this}/>
LayoutGlobalsが反応変数である私のサブコンポーネントで
、私のコードは次のようになります。私は親の状態を設定すると、無限ループの再レンダリングで終わります。これを処理する正しい方法は何でしょうか?
コンポーネントは、自分自身の責任を負い、自分の子にアクションを委任する必要があります。親にツリーを戻さないでください – Alex