https://reactjs.org/docs/react-component.html
ю, что React может выполнять обновления состояния асинхронно и в пакетном режиме для оптимизации производительности. Поэтому вы никогда не можете доверять обновлению состояния после вызоваsetState
, Но можете ли вы доверять Реагировать наобновить состояние в том же порядке, что иsetState
называется за
Попробуйте нажать кнопку в следующих примерах:
1. Есть ли вероятность того, чтоа ложь и б правда за:
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. Есть ли вероятность того, чтоа ложь и б правда за:
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, а также выполнение второго обновления состояния при обратном вызове первого обновления состояния в примере 2. Однако это не мой вопрос, и меня интересует только наличие четко определенный способ, которым React выполняет эти обновления состояния, больше ничего.
Любой ответ, подкрепленный документацией, высоко ценится.