Значение состояния не обновляется в событии нажатия кнопки с помощью React - PullRequest
0 голосов
/ 24 декабря 2018

Значение состояния не обновляется при нажатии кнопки с помощью React JS.Я объявил одно имя переменной состояния order. Затем я сохраняю некоторое значение в состоянии заказа, но я нажал кнопку, значение заказа не обновляется.

Я хочу обновить order после нажатия кнопки.государственный заказ - пустой массив.

   onPlaceOrderItem(event) {
    let packageData = this.state.order;
    this.setState({
        order: isEmptyData
    })
    const { dispatch } = this.props;
    dispatch(itemActions.placeOrderItems(packageData))
}

1 Ответ

0 голосов
/ 24 декабря 2018

this.setState({ order: isEmptyData }) не будет мутировать this.state.order при вызове.this.state.order будет видоизменен позже.

Обновления состояний могут быть асинхронными .В результате вы не должны рассчитывать на packageData (он же this.state.order) при отправке itemActions.placeOrderItems(packageData).

. Решением может быть присвоение обновленного значения order setState и placeOrderItems:

onPlaceOrderItem(event) {
  const { dispatch } = this.props;

  const order = isEmptyData;
  this.setState({order})
  dispatch(itemActions.placeOrderItems(order))
}

Но вы не можете предполагать, что и состояние редуктора, и состояние компонента будут обновлены одновременно.

В любом случае, если order мутирован в редукторе, значение order из редуктора должно быть введено в ваш компонент, а состояние компонента удалено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...