假如有多个页面一开始在this.state里面获取当前最新时间,如果这个页面不关闭,第二天页面来回切换,时间还是昨天的,没有更新到当前的,发现解决办法只能在componentWillMount或者componentDidMount函数里面再setState一下,或者还有其它办法?
class Index extends React.Component {
constructor(props) {
super(props);
this.state = {
date:(moment().format('YYYY-MM-DD')).replace(/-/g, '');
};
}
render() {
const {p_date} = this.state;
<DatePicker onChange={this.datePickerChange} value={moment(p_date,'YYYY-MM-DD')} />
}
}
export default Index
首先你要对react的state有个大致的了解。 在构造函数中初始化了state的值, 这个值是不会变化的。因为只是做了一个初始化。当你切换页面的时候,这个组件的state 并不会再次执行。因为构造函数只会执行一次。所以你必须手动的告诉 react 我这个组件发生变化了需要更新。所以会有willMount 和didMount 两个组件。