如何检查window.onpopstate是否反应js

时间:2017-12-28 09:20:28

标签: javascript reactjs

在我的应用程序中,我想在浏览器后退按钮事件中保留应用的过滤器。

为了做到这一点,我做了以下代码。

componentWillMount() {
 const { list, checkReportClose, updateReportCloseStatus } = this.props;
 const { inPopState } = this.state;
  window.onpopstate = () => {
   if (!_.isEmpty(list)) {
    this.setState({ filters: JSON.parse(list.input.filters), inPopState: true}, this.loadList);
   }
  }
 if(!inPopState && inPopState != undefined && checkReportClose == false) {
  this.loadList();
 }
}

如上所述,当我通过按回按钮返回此页面时,它将检查window.onpopstate并处理过滤器并调用loadlist api。我正在将状态inPopState更新为true。 现在您可以看到我是否正在检查inPopState,如果它是false,那么只有loadList api调用。但就我而言,即使我正在更新状态,它也会调用loadList API两次。

我想检查条件是否超过window.onpopstate,如果是,那么loadlist将使用没有过滤器的过滤器。

0 个答案:

没有答案