我有一个 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 无法按预期工作。我究竟做错了什么?谢谢