React가 성능 최적화를 위해 비동기식으로 일괄 업데이트 상태를 수행 할 수 있음을 알고 있습니다. 따라서 호출 한 후에 업데이트 될 상태를 신뢰할 수 없습니다 setState
. 하지만 당신은 반응 믿을 수 와 같은 순서로 상태를 업데이트 setState
이라고 를 위해
- 같은 구성 요소?
- 다른 구성 요소?
다음 예제에서 버튼을 클릭하십시오.
1. 가능성 적이 있습니까 A가 거짓이고, b는 사실 에 대한이 :
class Container extends React.Component {
constructor(props) {
super(props);
this.state = { a: false, b: false };
}
render() {
return <Button onClick={this.handleClick}/>
}
handleClick = () => {
this.setState({ a: true });
this.setState({ b: true });
}
}
2. 가능성 적이 있습니까 A가 거짓이고, b는 사실 에 대한이 :
class SuperContainer extends React.Component {
constructor(props) {
super(props);
this.state = { a: false };
}
render() {
return <Container setParentState={this.setState.bind(this)}/>
}
}
class Container extends React.Component {
constructor(props) {
super(props);
this.state = { b: false };
}
render() {
return <Button onClick={this.handleClick}/>
}
handleClick = () => {
this.props.setParentState({ a: true });
this.setState({ b: true });
}
}
이것들은 나의 유스 케이스의 극단적 단순화입니다. 예 1의 첫 번째 상태 업데이트에 대한 콜백에서 두 번째 상태 업데이트를 수행하는 것뿐만 아니라 예제 1에서 동시에 두 상태 매개 변수를 업데이트하는 것과 같이 다르게 수행 할 수 있음을 알고 있습니다. 그러나 이것은 내 질문이 아닙니다. React가 이러한 상태 업데이트를 수행하는 잘 정의 된 방법이 있는지에 대해서만 관심이 있습니다.
문서로 뒷받침 된 답변은 대단히 감사합니다.