React setState 不更新状态值

时间:2021-04-15 21:19:55

标签: javascript reactjs react-hooks state setstate

我有一个 react 应用程序,其中在构造函数中我将 displayDate 初始化为空字符串。当应用加载时,displayDate 值会根据 props 设置。

constructor(props){
    this.calendar = null;
    this.state{
        displayedDate: ""
    };
}

componentDidMount(){
    this.calendar = new Calendar({
            format: "MM/DD/YYYY",
            value: this.state.displayedDate
    });
}

componentWillMount(){
    if(this.props.defaultDate){
        this.setState({
            displayedDate: this.convertDateToString(this.props.defaultDate)
        });   
    }
}
// many many more lines of code that follow this

render(){
    return(
        <input type="text"></input>
        <i class="fa fa-calendar" id="calendar"></i>
    );
}

在测试应用程序时,我在 this.setState 中的 componentWillMount 上设置了一个断点,它确实进入了 if 块,因此应用程序正在从 props 接收日期值。但是 setState 似乎没有将 displayedDate 设置为 state。而我的 convertDateToString 函数返回一个值,所以它不是 displayedDate 获取空值的问题。在 componentDidMount 中,我设置了一个断点并转储了状态值,而 displayedDate 仍然是一个空字符串。

我以前见过人们遇到过类似的问题,其中 setState 无法按预期工作。我究竟做错了什么?谢谢

0 个答案:

没有答案