关于时间不会更新问题 react

假如有多个页面一开始在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
阅读 2.3k
2 个回答

首先你要对react的state有个大致的了解。 在构造函数中初始化了state的值, 这个值是不会变化的。因为只是做了一个初始化。当你切换页面的时候,这个组件的state 并不会再次执行。因为构造函数只会执行一次。所以你必须手动的告诉 react 我这个组件发生变化了需要更新。所以会有willMount 和didMount 两个组件。

可以通过设置定时器更新当前时间啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题