Reactjs Typescript:如何抑制";没有与此调用匹配的重载";?

Reactjs Typescript:如何抑制";没有与此调用匹配的重载";?,reactjs,typescript,react-native,native-base,Reactjs,Typescript,React Native,Native Base,所以我有一个React本机应用程序,它使用本机Base作为UI库和Typescript 现在有了一种新的手风琴,一旦它展开,就会呈现第二个(嵌套的)手风琴。问题在于TypeScript抱怨: VirtualizedList包含一个单元格,该单元格本身包含多个与父列表方向相同的VirtualizedList。您必须将唯一的listKey道具传递给每个同级列表。 这很好。但是当我把这个listKey添加到我的Accordion中时,TypeScript抱怨没有重载匹配这个调用。 如何抑制此警告?因为

所以我有一个React本机应用程序,它使用本机Base作为UI库和Typescript

现在有了一种新的手风琴,一旦它展开,就会呈现第二个(嵌套的)手风琴。问题在于TypeScript抱怨:

VirtualizedList包含一个单元格,该单元格本身包含多个与父列表方向相同的VirtualizedList。您必须将唯一的listKey道具传递给每个同级列表。

这很好。但是当我把这个
listKey
添加到我的
Accordion
中时,TypeScript抱怨没有重载匹配这个调用。

如何抑制此警告?因为Native Base不提供
listKey
作为其
手风琴的道具

代码如下:

imports ...

type Props = {};

const Test: React.FC<Props> = ({}) => {

  const renderNestedAccordion = () => {
    return (
      <View>
        <ComponentWithAccordion></ComponentWithAccordion>
      </View>
    );
  };

  const dataArray = [{content: renderNestedAccordion()}];

  return (
    <Accordion
      listKey={'acc'} // error
      dataArray={dataArray}
    />
  );
};

export default Test;
导入。。。
类型Props={};
常量测试:React.FC=({})=>{
常数renderNestedAccordion=()=>{
返回(
);
};
常量数据数组=[{content:renderNestedAccordion()}];
返回(
);
};
导出默认测试;
快速修复:

您可以尝试
/@ts ignore
,这将抑制警告

不那么有罪的解决办法:

如果查看NativeBase中的
Accordion
,您将看到没有
listKey
。在引擎盖下,NativeBase
Accordion
使用一个
FlatList
。我们从
FlatList
的React Native中了解到,它扩展了
VirtualizedListProps
,具有
listKey

查看
Accordion
实现,我们从
Accordion
中看到
FlatList
,这意味着应该支持所有
FlatList
道具。因此,
accordio
应该扩展
FlatList
道具。您可以将
listKey
添加到
Accordion
类型定义或发送Github问题


免责声明:我从未使用过Native Base。以上结论是通过查看代码得出的。

谢谢您的回答。但是,这样做可以/好吗?在我看来,没有别的办法。。。感觉很不对劲>。