React에서 상태 유지 구성 요소를 업데이트하는 경우 구성 요소가 현재 상태를 사용하여 새 상태를 업데이트하는 것은 좋지 않은 것으로 간주됩니다.setState in 현재 상태를 기준으로
예를 들어, 필터가 열려 있는지 여부를 저장하는 클래스가있는 경우 성능면에서 다른 것보다 상태를 업데이트하는 옵션 중 하나입니까?
옵션 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을 선호합니다. –