测试中出现错误:
不变式失败:您不应该在
<Link>
之外使用<Router>
对此我该怎么办?
483 | state,
484 | }) => {
> 485 | const component = mount(<Testrun {...props} />);
| ^
486 | return component;
487 | };
488 | it('should have an input for the username', function () {
答案 0 :(得分:2)
在实际项目中,您的<Testrun>
嵌套在某些父级中,并且还包裹有一些父级,并且其中某些父级也有<BrowserRouter>
或<HashRouter>
。
它们提供<Link>
所需的上下文(在这里是React的Context API)。
因此,您需要在测试中使用某些路由器版本。就像
const component = mount(<MemoryRouter><Testrun {...props} /></MemoryRouter>);
您可以使用任何其他路由器,但是MemoryRouter
由于易于配置和控制,因此在测试中特别有用。
答案 1 :(得分:-1)
您必须在Router的子代内部创建Link标记
答案 2 :(得分:-1)
必须有一个在组件外部应用的组件。因此,您遇到以下错误: 不变式失败:您不应在。
之外使用将组件移到组件内部。