リアクション内のステートフルコンポーネントを更新する場合、コンポーネントが現在の状態を使用して新しい状態を更新すると、悪い習慣とみなされます。現在の状態に基づいてリアクション内のsetState
たとえば、フィルタが開いているかどうかを保存するクラスがある場合、パフォーマンスの観点から、より状態を更新するためのこれらのオプションの1つはありますか?
オプション1:
class Container extends Component {
state = {
show: false
}
show =() => this.setState({ show: true })
hide =() => this.setState({ show: false })
render() {
<ExternalComponent
show={this.show}
hide={this.hide}
/>
}
}
オプション2:
class Container extends Component {
state = {
show: false
}
toggleVisibility =() => this.setState({ show: !this.state.show })
render() {
<ExternalComponent
toggleVisibility={this.toggleVisibility}
/>
}
}
はオプション3:
class Container extends Component {
state = {
show: false
}
setShow = (newVal) => this.setState({ show: newVal })
render() {
<ExternalComponent
setShow={this.setShow}
/>
}
}
私はなぜそれが状態の変更以外の悪い習慣とみなされるのか分かりませんが、非同期でマージ可能です。これはおそらく合理的な懸念です - あなたが期待するものを得ることができないかもしれません。個人的に私はオプション3を好むだろう。 –