Reactjs 无法设置MemoryRouter(酶)内组件的道具

Reactjs 无法设置MemoryRouter(酶)内组件的道具,reactjs,react-redux,jestjs,enzyme,Reactjs,React Redux,Jestjs,Enzyme,我正在内存路由器中安装用户组件 我想调用setProps来更改用户的值 const mountComponent = props => mount( <Provider store={store}> <MemoryRouter> <Users {...props}/> </MemoryRouter> </Provider> ); const wrapper =

我正在内存路由器中安装用户组件

我想调用setProps来更改用户的值

const mountComponent = props => mount(
    <Provider store={store}>
        <MemoryRouter>
           <Users {...props}/>
        </MemoryRouter>
    </Provider>
);

const wrapper = mountComponent({
   users: [],      
});
const mountComponent=props=>mount(
);
常量包装器=挂载组件({
用户:[],
});
有人能帮我吗?

根据您的要求,您只能在root elementWrapper上调用它,在我们的例子中,它是
。 就个人而言,我更喜欢尝试测试原始组件,而不使用任何包装。 大概是这样的:

const mountComponent = props => mount(
  <Users {...props} />
);
const mountComponent=props=>mount(
);

您可以在此处将Redux相关数据作为普通道具传递。

wrapper.setProps({children:cloneElement(wrapper.props().children,{agent:agent}),});此代码不适用于MES,因为我的组件是一个容器,我必须将其包装在提供程序中,const Users container=connect(mapStateToProps,mapsDispatchToprops)(Users);UsersContainer.displayName='connect(Users)';导出默认用户容器;但是您可以(而且可能应该)测试未连接的
组件。否则,您将无法访问测试组件的
setProps
setState
,因为它不是根。以下是Redux团队关于为连接组件编写测试的一些建议-