当我的状态更改状态时运行此方法

时间:2019-01-23 20:58:11

标签: javascript reactjs

我有一个这段代码,当我的状态desktopOpen: true切换为布尔状态时,我想运行此代码。

  handleResize() {
    const evt = window.document.createEvent('UIEvents');
    evt.initUIEvent('resize', true, false, window, 0);
    window.dispatchEvent(evt);
  }

1 个答案:

答案 0 :(得分:0)

您可以在设置状态的任何地方立即传递回调,并可以在回调中更新事件。

this.setState(prevState => ({
  desktopOpen: !prevState.desktopOpen
}), () => {
  if (this.state.desktopOpen) {
    const evt = window.document.createEvent('UIEvents');
    evt.initUIEvent('resize', true, false, window, 0);
    window.dispatchEvent(evt);
  }
});