我的Jest测试是在本机上运行的,但是当我检查Typescript linter时,我收到了这个错误:
error TS2339: Property 'store' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{ childr...'.
顺便说一下,我正在研究反应原生。
这个错误行引发错误:
const home = shallow(<Home store={store}/>)
答案 0 :(得分:2)
您的Home
很可能是由connect()
返回的包装组件。
在这种情况下,有几种方法可以在测试中处理这个问题:
1)如果您不需要连接道具和操作进行测试,那么只需使用未包装的Home
组件,如此处所述https://github.com/reactjs/redux/blob/master/docs/recipes/WritingTests.md#connected-components
2)用Provider
包裹您的组件,例如; wrapper = mount(<Provider store={store}><Home /></Provider>
。缺点是您的快照也包含有关提供商的信息,您不能使用浅层测试Home
组件。
3)在IntrinsicAttributes
文件中扩展.d.ts
,如下所示:
declare namespace JSX {
interface IntrinsicAttributes {
store: any;
}
}
并将其包含在测试中。
答案 1 :(得分:-2)
<Home store={store}/>
中的您的组件是Home
,并且它没有store
属性。
因此错误。
向store
组件添加Home
道具。