在 React 中更新有状态组件时,如果组件使用当前状态来更新新状态,这被认为是一种不好的做法。
例如,如果我有一个类来存储过滤器是否处于打开状态,那么这些用于更新状态的选项之一在性能方面是否比另一个更可取?
选项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}
/>
}
}