问题描述
test('check if home renders correctly',() => {
const { getByText } = render( <MockedProvider mocks={mocks} addTypename={false}> <Home/> </MockedProvider>);
});
我在MockedProvider下有一条红线,显示错误消息:
Types of property 'children' are incompatible.
Type '(string | Element)[]' is not assignable to type 'ReactElement<any,string | ((props: any) => ReactElement<any,string
| ... | (new (props: any) => Component<any,any,any>)> | null) | (new
(props: any) => Component<any,any>)> | ... 7 more ... |
undefined'.
解决方法
看起来这是Apollo的类型签名出现的问题。由于它是ReactElement的子集,因此应该允许使用ReactNode。解决方法是将子类型明确转换为ReactElement。
const { getByText } = render( <MockedProvider mocks={mocks} addTypename={false}> <Home/> as ReactElement </MockedProvider>);