属性“ children”的类型不兼容-MockedProvider

问题描述

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>);