开玩笑的快照测试错误:您不应在<Router>之外使用<Link>

1993年

我想为Footer组件编写快照测试,但是会引发错误:You should not use <Link> outside a <Router>这是我的代码:

import React from 'react'
import renderer from 'react-test-renderer'

import Footer from '../footer'

it('Footer renders correctly', () => {
    const tree = renderer
        .create(<Footer />)
        .toJSON()

    expect(tree).toMatchSnapshot()
})

我知道发生这种情况是因为Footer组件使用Linkfrom react-router-dom为了解决这个问题,我将Footer组件包装BrowserRouter

const tree = renderer
    .create(
        <BrowserRouter>
            <Footer />
        </BrowserRouter>
    )
    .toJSON()

但现在它抛出错误: Browser history needs a DOM

1993年

我用MemoryRouter代替,BrowserRouter它解决了问题。

import React from 'react'
import { MemoryRouter } from 'react-router-dom'
import renderer from 'react-test-renderer'

import Footer from '../footer'

it('Footer renders correctly', () => {
const tree = renderer
    .create(
        <MemoryRouter>
            <Footer />
        </MemoryRouter>
    )
    .toJSON()

    expect(tree).toMatchSnapshot()
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

反应开玩笑-您不应在<Router>外使用<Link>

未捕获的错误:您不应在 <Router> 之外使用 <Link> 引用导航栏

您不应在<Router>外使用<Link>

错误:不变失败:当我尝试使用 localhost 测试我的应用程序时,您不应在 <Router> 之外使用 <Link>

ReactJS Header Layout,您不应在<Router>外使用<Link>

错误:不变式失败:您不应在<Router>外使用<Link>

配置react-router-dom会产生错误:不变失败:您不应在<Router>外使用<Link>

RouterContext - 错误:不变失败:您不应在 <Router> 之外使用 <withRouter(App) />

在 BrowserRouter 之外使用 Link 测试组件

是否可以在<Router>之外使用<Link>与react进行交互?

在上下文提供程序中使用 withRouter 会导致错误:“不变式失败:您不应在 <Router> 之外使用 <Route>”

不变式失败:您不应在<Router>外使用<Route>

反应 您不应在<Router>外使用<withRouter(App)/>

不变式失败:您不应在<Router>外使用<Switch>

反应BrowserRouter导致“您不应该在<Router>之外使用<Route>或withRouter()”

React Typescript 错误:不变失败:您不应该在 <Router> 之外使用 <withRouter(App) />

你不应该在<Router>之外使用<Route>或withRouter()

在渲染之外使用React Router功能

不变式失败:您不应在<Router>外使用<withRouter(Sidebar)/>

反应-错误:不变式失败:您不应在<路由器>之外使用<链接>

frobot 框架 - 在测试之外使用

带反应路由器的故事书-您不应在<路由器>之外使用<链接>

在 router.post 或 router.get 之外使用 req.user

不能在模块错误之外使用 import 语句

在 main 函数之外使用 malloc 编译错误

何时使用<router-link>与<a>

使用ReactDOM.render将链接添加为路由器的子级时,会产生“您不应在<路由器>之外使用<链接>”。

我如何在外部npm包中使用React的Link组件而不会出现错误:不变“您不应在路由器外部使用链接”

使用 Karma / Jasmine for Router 的 Angular 单元测试错误