如果有重复请原谅我。

我知道MemoryRouter具有initialEntries和initialIndex,因此您可以为“位置”和“历史记录”设置路径等。但是“match”没有更新...我需要为我的react应用程序和Jest测试设置“match”。

当我尝试

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

我正进入(状态
match: { path: '/', url: '/', params: {} ... },
location: { path: '/hello', pathname: '/', ... },
history: { ..., location: { path: '/hello', pathname: '/', ... }}

我想知道是否有办法设置比赛。提前致谢。

最佳答案

您可以将<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对象。

10-06 00:46