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 выполняет эти обновления состояния, больше ничего.

Любой ответ, подкрепленный документацией, высоко ценится.

Ответы на вопрос(4)

Ваш ответ на вопрос