Javascript React setState不更新状态值

Javascript React setState不更新状态值,javascript,reactjs,react-hooks,state,setstate,Javascript,Reactjs,React Hooks,State,Setstate,我有一个react应用程序,在构造函数中我将displayDate初始化为空字符串。加载应用程序时,将根据道具设置displayDate值 构造函数(道具){ this.calendar=null; 这个州{ 显示日期:“ }; } componentDidMount(){ this.calendar=新日历({ 格式:“MM/DD/YYYY”, 值:this.state.displayedDate }); } 组件willmount(){ 如果(此.props.defaultDate){ 这是

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

构造函数(道具){
this.calendar=null;
这个州{
显示日期:“
};
}
componentDidMount(){
this.calendar=新日历({
格式:“MM/DD/YYYY”,
值:this.state.displayedDate
});
}
组件willmount(){
如果(此.props.defaultDate){
这是我的国家({
displayedDate:this.convertDateToString(this.props.defaultDate)
});   
}
}
//后面还有很多行代码
render(){
返回(
);
}
在测试应用程序时,我在
上设置了一个断点。在
组件中设置state
将挂载
,它确实输入了
if
块,因此应用程序正在从道具接收日期值。但是setState似乎没有将
displayedDate
设置为状态。我的
convertDateToString
函数返回一个值,因此
displayedDate
获取一个空值不是问题。在
componentDidMount
中,我设置了一个断点并转储了状态值,
displayedDate
仍然是一个空字符串


我以前见过有人遇到类似的问题,setState不能像预期的那样工作。我做错了什么?谢谢

这回答了你的问题吗?为什么这么复杂?我将代码从生命周期方法向上移动到构造函数中。尝试在呈现函数中显示
${this.state}
控制台.log(this.state)
<代码>设置状态()不会立即应用状态更改(如Brian所述)。一旦应用,React将调用
render
,并刷新UI。@Thomas我在构造函数中遇到日历初始化问题。日历中还有其他字段,这些字段依赖于html元素的呈现,因此我需要使用一些
createRef
s。结果是将初始化移动到生命周期方法,以便在加载应用程序后初始化日历。