簡體   English   中英

反應-this.setState和this.forceUpdate不更新狀態以保存最新值

[英]React - this.setState and this.forceUpdate doesn't update state to hold latest values

我有一個表格,它顯示基於日期范圍的數據。 首次加載時,>會顯示最近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不會立即改變狀態-從Reacts文檔中:

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

setState()不會立即使this.state發生突變,但會創建一個掛起的狀態轉換。 調用此方法后訪問this.state可能會返回現有值。 無法保證對setState的調用的同步操作,並且可能會為提高性能而批量調用。

此代碼應處於渲染狀態,以便您查看更新。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM