我有一个包装在Provider
内的组件,并且我使用酶架进行测试。我想在使用wrapper.find
时推断类型,以便我可以访问组件状态并具有所有类型。这是我正在运行的代码的示例:
const wrapper = mount<Provider>(
<Provider mocks={mocks}>
<MyComponent
foo={bar}
/>
</Provider>
);
const MyComponentInstance = wrapper.find("MyComponent").instance();
expect(MyComponentInstance.state.isBar).toBe(true);
MyComponentInstance
是我想要获取类型推断的位置,因此以后可以调用MyComponentInstance.state.isBar
。
MyComponent
State
类型的定义是这样的:
type State = {
isBar: boolean
}
export class MyComponent extends Component {
public state : State = {
isBar: false
}
}
根据the documentation,您还可以通过其构造函数查找组件。因此,您可能需要尝试以下操作:
const wrapper = mount<Provider>(
<Provider mocks={mocks}>
<MyComponent
foo={bar}
/>
</Provider>
);
const MyComponentInstance = wrapper.find(MyComponent).instance();
expect(MyComponentInstance.state.isBar).toBe(true);
TypeScript现在应该可以推断类型,但是是否可行取决于您使用的类型定义。