【发布时间】:2018-12-11 21:35:13
【问题描述】:
我正在尝试使用 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>
在测试中(从 Enzyme 挂载,匹配未定义):
mount(<MemoryRouter initialEntries={['/fr/pamp']}>
<Vidactic />
</MemoryRouter>)
所以我使用了这个解决方法,但为什么 initialEntries 不能自行工作?
mount(<MemoryRouter initialEntries={['/fr/pamp']}>
<Vidactic match={{ params: { item: 'pamp' } }} />
</MemoryRouter>)
【问题讨论】:
标签: reactjs react-router jestjs enzyme react-router-v4