首页 > 解决方案 > ReactJs 不更新状态

问题描述

我有点困惑为什么我的这个功能不会像它应该的那样更新状态。我得到一个日期对象,然后将其转换为我想要的格式,但是当我尝试在最底部设置状态时,回调警报只是空白。

我怎样才能使它在此功能结束后立即更新状态?

floorLastCleanedChange(date) {
    this.setState({ flooringLastCleanedTest: date });
    var floorDate = new Date(date);
    alert(floorDate);
    var day = floorDate.getDate();
    if(day.toString().length === 1)
    {
        day = '0' + day;
    }
    var month = floorDate.getMonth() + 1;
    if(month.toString().length === 1)
    {
        month = '0' + month;
    }
    var year = floorDate.getFullYear();
    alert(month+"/"+day+"/"+year);
    this.setState({flooringLastCleaned: month+"/"+day+"/"+year}, alert(this.state.flooringLastCleaned));
}

标签: javascriptreactjsstate

解决方案


尝试这个。setState 的回调只是 a function,您function call在回调的代码中改为 a 。

setState(
  {flooringLastCleaned: month+"/"+day+"/"+year},
  () => alert(this.state.flooringLastCleaned);
);

推荐阅读