です。反応が非常に大きいアプリケーションを初めて作成した後は、私の再レンダリングが基本的にUIをフリーズしていますUX。親コンポーネントのコールバックに引数を渡す正しい方法は、
私は、プロンプトとして無名関数を渡すと、毎回受信コンポーネント全体が発生することはわかりませんでした。だから今私は自分の機能を修正しようとしていますが、それが正しくなるのは難しいです。
現在、NavBar
というコンポーネントがあり、サブコンポーネントはNavBarLink
となっています。各NavBarLink
は、同じshowPopup(arg)
関数を呼び出します。しかし、showPopup(arg)
の引数はNavBarLink
がクリックされたことに基づいています。
例
render() {
return (
<NavBarLink onClick={() => showPopup("UNIQUE_POPUP_ID")}>Link 1</NavBarLink>
<NavBarLink onClick={() => showPopup("ANOTHER_POPUP_ID")}>Link 2</NavBarLink>
);
}
質問
は、どのように私は、同じ開発者の経験を持つことができますが、再レンダリングの問題に悩まされませんか?
関連記事
- Why Arrow Functions and bind in React’s Render are Problematic
- React Pattern: Extract Child Components to Avoid Binding
- React Binding Patterns: 5 Approaches for Handling
this
おそらくshowPopupとポップアップIDを別々の2つの小道具として渡し、適切な時にNavBarLinkコンポーネントが 'this.props.showPopup(this.props.popupId) –
を呼び出すようにしてください。この回答を確認してくださいhttps://stackoverflow.com/questions/45053622/how-to-avoid-binding-inside-render-method/45053753#45053753 –