我正在使用MemoryRouter,并且由于将其添加到测试中,因此无法访问已安装组件的状态。我正在使用笑话+酶进行测试。 我提到了这篇文章,但仍然出现此错误。
How does one access state on a nested React component wrapped by an HOC?
我的测试代码块,
it('test if search component sets the value state', () => {
const wrapper = mount(
<MemoryRouter>
<HomePageContent />
</MemoryRouter>
);
const boxInput = wrapper.find('Box#boxInput').children().props();
act(() => boxInput.children.props.onChange({ detail: { value: 'test' } }));
expect(wrapper.find(HomePageContent).instance().state('value')).toEqual('test');
});
我的反应成分
class HomepageContent extends React.Component<RouteComponentProps<{}>, HomePageState> {
constructor(props: RouteComponentProps<{}>){}
render{return();}
}
export default withRouter(HomePageContent);