反应js:检测页面刷新

时间:2017-11-18 16:51:05

标签: javascript reactjs reload

我是react.js的新手。 我有一个简单的表格页面。当我重新加载页面时,状态正在迷失。 有没有办法检测浏览器刷新?

3 个答案:

答案 0 :(得分:0)

事件beforeunload在刷新窗口浏览器之前执行。活动可以取消。

window.beforeunload = (e) => {
  console.log('Stop this');
  event.preventDefault()
  event.returnValue = '';
};

使用React时,选项是在componentDidMount生命周期方法中的@ componentWillUnmount生命周期方法中控制您的应用程序组件或最高阶组件,而不是我最初建议的data=[['lion', '23', '35'], ['lion', '24', '68'], ['elephant', '23', '34'], ['monkey', '4', '20'], ['monkey', '5' , '25'], ['monkey','28', '90'], ['lion', '33', '2']] from itertools import groupby from itertools import combinations final_=[] for i,j in groupby(sorted(data),key=lambda x:x[0]): final_.append(list(j)) final__=[] check=[] for mn in final_: if len(mn)==1: final__.append(mn) for k in combinations(mn,r=2): if abs(int(k[0][1])-int(k[1][1]))==1: check.extend(k) final__.append([k[0][0],"{}-{}".format(k[0][1],k[1][1]),"{}-{}".format(k[0][2],k[1][2])]) else: if k[0] not in check: if k[0] not in final__: final__.append(k[0]) elif k[1] not in check: if k[1] not in final__: final__.append(k[1]) print(final__) ,并管理那就是你想要实现的目标。

答案 1 :(得分:0)

尝试这个。这对我有用。

if (window.performance) {
  if (performance.navigation.type == 1) {
    alert( "This page is reloaded" );
  } else {
    alert( "This page is not reloaded");
  }
}

答案 2 :(得分:0)

使用 [react-beforeunload][1],您可以轻松跟踪页面更改

return await _repository.GetPagedListAsync(
    predicate: c => c.L_Name.Contains(_lname) , c => c.F_Name.Contains(_fname),
    pageIndex: page,
    pageSize: limit,
    cancellationToken: cancellationToken
);

这对我有用。我希望这个对你也有用。 [1]:https://www.npmjs.com/package/react-beforeunload