React - this.setState 和 this.forceUpdate 不会更新状态以保存最新值



我有一个表单,它根据日期范围显示数据。首次加载时,>它显示过去 1 小时的数据。我正在使用反应日期>>>>选择器来呈现开始和结束时间。当用户更改开始和结束日期>>>时,将调用以下函数。在此函数中,我尝试使用用户选择的开始和结束日期设置>>>状态,但状态始终保留>>>上一个开始和结束日期值

  refreshTableOnDateChange(startDateSelected,endDateSelected) {
            this.setState({startDate: null, endDate: null});
             console.log("inside refreshTableOnDateChange this.state.startDate is", startDateSelected);
             console.log("inside refreshTableOnDateChange this.state.endDate is", endDateSelected);
             let startDateFormatted = startDateSelected.format('YYYY-MM-DD HH:mm');
             let endDateFormatted = endDateSelected.format('YYYY-MM-DD HH:mm');
              this.setState({startDate: startDateFormatted, endDate: endDateFormatted});
              this.forceUpdate();
              console.log("start date is", this.state.startDate);
             console.log("end date is", this.state.endDate);
             this.load(this.state.orderType);
           }

setState 不会立即改变状态 - 来自 反应文档:

https://facebook.github.io/react/docs/react-component.html#setstate

setState(( 不会立即改变 this.state,但会创建一个 挂起的状态转换。调用此状态后访问此状态 方法可能会返回现有值。没有 保证对 setState 的调用的同步操作,并且调用可能 进行批处理以提高性能。

此代码应呈现,以便您看到更新。

      console.log("start date is", this.state.startDate);

相关内容

最新更新