CYThor 2023-01-17 01:58 采纳率: 100%
浏览 37
已结题

react网页删除token后用户任然可以继续访问页面

问题遇到的现象和发生背景

使用react时,在页面按 F12>>应用 中删除token后会报错(这个很正常),我想要做的是在这个“报错出现的时候自动执行”一些操作,比如返回登陆界面或者刷新页面,但不知道如何实现这个“报错出现的时候自动执行”

遇到的现象和发生背景,请写出第一个错误信息

在删除token后console出现498 错误代码,但是页面并没有退出,用户照样可以在这个没有token的情况下继续访问页面,这是非常危险的bug

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容

498错误代码

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

我自己尝试了一些改动,目前的现象就是在删除token后需要手动刷新页面才能返回登陆界面,现在我不知道如何完成的是让498错误代码出现的时候页面自动刷新

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

1条回答 默认 最新

  • TGpenguin 2023-01-17 02:14
    关注

    在 React 中,可以使用 componentDidCatch 生命周期函数来处理错误。你可以在组件中使用这个生命周期函数来捕获错误并执行你想要的操作,例如跳转到登录页面或刷新页面。

    class YourComponent extends React.Component {
      componentDidCatch(error, info) {
        if (error.status === 498) {
          // Your code here
          // e.g. this.props.history.push('/login')
          // or window.location.reload()
        }
      }
      // ...
    }
    

    需要注意的是,这个生命周期函数只能捕获在组件内部发生的错误。如果错误发生在组件外部,例如在请求中,你需要使用 try-catch 或者其他处理错误的方法。


    在请求中使用 try-catch 来捕获错误。

    try {
      const response = await axios.get('/some-endpoint');
      // handle success
    } catch (error) {
      if (error.response.status === 498) {
        // Your code here
        // e.g. this.props.history.push('/login')
        // or window.location.reload()
      }
      // handle other errors
    }
    

    另外,你也可以在请求外层封装一层,在里面判定token是否过期,并进行错误处理。

    总之,你需要找到498个错误的生产点,并在相关的地方处理这个错误,使得当

    498错误出现时能够自动执行你预先设定的操作,如跳转登录页面或刷新页面。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 赞助了问题酬金15元 1月17日
  • 创建了问题 1月17日

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败