Reactjs Typescript:如何抑制";没有与此调用匹配的重载";?
所以我有一个React本机应用程序,它使用本机Base作为UI库和Typescript 现在有了一种新的手风琴,一旦它展开,就会呈现第二个(嵌套的)手风琴。问题在于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抱怨没有重载匹配这个调用。 如何抑制此警告?因为
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
。在引擎盖下,NativeBaseAccordion
使用一个FlatList
。我们从FlatList
的React Native中了解到,它扩展了VirtualizedListProps
,具有listKey
查看Accordion
实现,我们从Accordion
中看到FlatList
,这意味着应该支持所有FlatList
道具。因此,accordio
应该扩展FlatList
道具。您可以将listKey
添加到Accordion
类型定义或发送Github问题
免责声明:我从未使用过Native Base。以上结论是通过查看代码得出的。谢谢您的回答。但是,这样做可以/好吗?在我看来,没有别的办法。。。感觉很不对劲>。