使用React JS单击按钮后,状态值不会立即更新。我声明了一个状态变量名称为order
。然后,我在订单状态中存储了一些值,但是我单击了按钮,订单值未更新。
单击按钮状态顺序为空数组后,我想更新order
。
onPlaceOrderItem(event) {
let packageData = this.state.order;
this.setState({
order: isEmptyData
})
const { dispatch } = this.props;
dispatch(itemActions.placeOrderItems(packageData))
}
答案 0 :(得分:0)
this.setState({ order: isEmptyData })
在被调用时不会突变this.state.order
。 this.state.order
将在以后进行变异。
State updates may be asynchronous。因此,在分发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
值注入到您的组件中,并删除组件状态。