私はReactを学んでおり、コンポーネントの抽出を開始しました。子コンポーネントにonClick
のようなイベントをバインドする方法を理解していますが、孫はどうですか?2レベル上のコンポーネントの状態を変更するにはどうすればよいですか?
例:
私はList
コンポーネントを持っています。それはListRow
子供を持っています。各ListRow子の中に、親からその特定の行を削除するボタンコンポーネントがあります(List). My thoughts are that the
deleteRow click handler would be on the
List component so that I could then set the state. However, I can't seem to find a way to call the grandparent's (
List`)eventHandler。
<List /> // has event handler as well as state for the list items
<ListRow />
<DeleteButton /> //when clicking this i want to delete parent <ListRow />
私はちょうどチェーンの下でonclickを渡すはずですか?
// grandparent function that goes into parent
heirloom()
{
console.log("grandparent says hi");
//something happens
}
// everything else (put into all subsequent children)
heirloom()
{
this.props.heirloom();
}
<List heirloom="this.heirloom">
<ListRow heirloom="this.heirloom" />
<DeleteButton onClick="this.heirloom"/>
私の構文はオフにすることができ、これがまたは私はしばらくの間反応で遊ぶ機会がなかった、動作しない場合があります:あなたは何か、これを試みることができる
あなたはメソッドを渡してみましたか? –
現在試しています。さて、それは現在、むしろそれとぼやけている。私は構文の権利があるかどうかわかりません。 – gin93r
メソッドを渡すことは間違いなく、やっかいなことですが、もっと複雑な "倒れ"(非常に遠い共通の祖先でコンポーネントを更新しようとするような)になると、Reduxを見てみることができます。 Reduxは、Reactと組み合わせて使用できる状態管理ライブラリです。 – ZekeDroid