如何设置与MemoryRouter和Jest的匹配路径? (不是位置或历史)

时间:2017-08-09 13:17:03

标签: javascript reactjs react-router jestjs

如果有重复,请原谅我。

我知道MemoryRouter有initialEntries和initialIndex,所以你可以为“location”和“history”设置路径等。但是“匹配”没有得到更新......我需要为我的反应应用程序和Jest测试设置“匹配”。

当我尝试时,

<MemoryRouter initialEntries={['/hello']} initialIndex={0}>
      <Hello store={store} />
</MemoryRouter>

我正在

match: { path: '/', url: '/', params: {} ... },
location: { path: '/hello', pathname: '/', ... },
history: { ..., location: { path: '/hello', pathname: '/', ... }}

我想知道是否有办法设置匹配。提前谢谢。

1 个答案:

答案 0 :(得分:12)

您可以使用<Hello store={store} />组件包裹<Route ... />组件,例如:

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

// later in tests

<MemoryRouter initialEntries={['/home']}>      
  <Route component={props => <HomeComponent {...props} />} path="/home" /> 
</MemoryRouter>

然后,您应该可以通过match访问正确的props对象。