我正在使用包装器组件进行测试,并且我想测试路由更改,因此在包装器中包含了MemoryRouter,但是当我尝试使用instance().history
时,对象是undefined
。但是,当我将内存路由器从包装器组件中取出时,它工作正常。
class TestContainer extends React.Component{
render () {
const { children } = this.props;
return (
<MemoryRouter keyLength={0}>
{children}
</MemoryRouter>
)
}
}
我的测试
describe('test', () => {
test('test route', () => {
let wrapper = mount(
<TestContainer>
<MyComponent />
</TestContainer>
);
console.log(wrapper.instance().history) // prints undefined
});
test('test route', () => {
let wrapper = mount(
<MemoryRouter keyLength={0}>
<MyComponent />
</MemoryRouter>
);
console.log(wrapper.instance().history) // prints history object
});
})
为什么这样工作?