保护路由组件和在测试中返回导航会导致无限循环。
创始人
2024-11-24 00:30:14
0

问题出现的原因是在测试中使用了React Router的高阶组件withRouter,这会使测试中的组件被重新渲染,而在重定向之后重新加载,从而导致了循环调用。

解决方法是使用MemoryRouter而非withRouter作为测试中的路由组件。若需要使用保护路由组件,则需要使用render方法并手动生成location对象,代码如下:

import { MemoryRouter, Route } from 'react-router-dom';

...

test('protected route', () => {
  const user = { username: 'testUser', password: 'testPassword' };
  localStorage.setItem('user', JSON.stringify(user));
  const location = { pathname: '/protectedRoute' };
  render(
    
       } />
    
  );
  expect(screen.getByTestId('protectedRoute')).toBeInTheDocument();
});

这里除了使用MemoryRouter之外,我们还手动生成了location对象,以确保在路由组件页面重新渲染时仍能正确显示页面。

相关内容

热门资讯

第九个AI!德扑分析软件(智能... 第九个AI!德扑分析软件(智能机器人平台安装)透视辅助(有挂总结)-哔哩哔哩;1.德扑分析 ai辅助...
第9个技巧!微扑克智能助手(辅... 第9个技巧!微扑克智能助手(辅助工具)透视辅助(真实有挂)-哔哩哔哩 科技详细教程;75744690...
3免费(德扑之星功能)外挂透明... 3免费(德扑之星功能)外挂透明挂辅助挂(辅助挂)AI教程(有挂实锤)-哔哩哔哩;是一款可以让一直输的...
第二个ai插件!德扑之星 ai... 第二个ai插件!德扑之星 ai软件(作弊)透视辅助(揭秘有挂)-哔哩哔哩是一款可以让一直输的玩家,快...
第二模拟器!大赢家跑得快辅助(... 第二模拟器!大赢家跑得快辅助(透视)太坑了其实真的有挂(讲解有挂)-哔哩哔哩是一款可以让一直输的玩家...
九技巧(aapoker安卓版)... 九技巧(aapoker安卓版)外挂透明挂辅助挂(透视)黑科技教程(有挂分析)-哔哩哔哩;wpk透视辅...
4个外挂!微扑克ai技术(wp... 4个外挂!微扑克ai技术(wpk俱乐部)辅助透视(有挂功能)-哔哩哔哩;值得一提的是,wpk俱乐部计...
第一个测试!德扑之星操作(人工... 第一个测试!德扑之星操作(人工智能)透视辅助(有挂规律)-哔哩哔哩1、不需要AI权限,帮助你快速的进...
第三安卓版!中至乐平麻将老是输... 第三安卓版!中至乐平麻将老是输怎么办(透视)太坑了原来真的有挂(有挂方法)-哔哩哔哩是一款可以让一直...
7真的假的(AAPOKeR)外... 7真的假的(AAPOKeR)外挂透明挂辅助app(辅助挂)辅助教程(有挂解密)-哔哩哔哩是由北京得A...