react离开页面清除数据

新手上路,请多包涵

react离开页面时清除当前页面的数据

相关代码

routerWillLeave() {

this.setState({
    myData: [],
    codeFile: [],
})

}

window.onbeforeunload = function (e) {

    e = e || window.event;
 
    if (e) {
      e.returnValue = '关闭提示';
      this.setState({
          myData: []
      })
      codeFileInfo = {}
    }
  
    return '关闭提示';
  };

这两种方法都不行,请问应该怎么解决

阅读 8.9k
3 个回答
✓ 已被采纳新手上路,请多包涵

我利用componentWillReceiveProps这个函数,另外附加了一些业务逻辑判断,使得每次在进入页面props发生变化时,将所有sate设为空就好啦

你的 onbeforeunload 回调用的是匿名函数声明,所以 this 在这里面已经指向了 window,要么你将这个回调改为 (e) => {} 的箭头函数形式,要么将 this 赋值给某个变量再使用。

因此页面关闭或者跳走的时候 onbeforeunload 应该是执行了,但是由于 this 缘故它并没有影响到 React,此时 console 应该会有报错,可以查看一下以便进一步梳理问题。

新手上路,请多包涵

componentWillUnmount(){
...dosth
}

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