代码之家  ›  专栏  ›  技术社区  ›  3Dos

jest:react router测试返回未定义的“params”

  •  0
  • 3Dos  · 技术社区  · 6 年前

    我正在尝试用 MemoryRouter 如React Router文档中所示,设置了初始条目,这样我就可以在封装的组件中拥有参数。

    组件示例:

    render () {
      console.log(this.props.match.params.item)
    }
    

    在应用程序中(工作正常):

    <Router>
      <Switch>
        <Route exact path='/' render={() => (
          <Redirect to={`/${guessLocale()}`} />
        )} />
        <Route exact path='/:lang' component={Home} />
        <Route exact path='/:lang/:itemName' component={Vidactic} />
      </Switch>
    </Router>
    

    在测试中(从酶中安装,匹配未定义):

    mount(<MemoryRouter initialEntries={['/fr/pamp']}>
      <Vidactic />
    </MemoryRouter>)
    

    所以我使用了这个变通方法,但为什么首字母条目本身不起作用?

    mount(<MemoryRouter initialEntries={['/fr/pamp']}>
      <Vidactic match={{ params: { item: 'pamp' } }} />
    </MemoryRouter>)
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Oblosys    6 年前

    Route this.props.match Vidactic

    mount(
      <MemoryRouter initialEntries={['/fr/pamp']}>
        <Route exact path="/:lang/:itemName" component={Vidactic} />
      </MemoryRouter>
    );
    

    <Switch>..</Switch>