Run*_*ror 2 typescript reactjs react-native native-base
所以我有一个 React Native 应用程序,它使用 Native Base 作为 UI 库和 Typescript。
现在有一个手风琴- 一旦展开 - 就会呈现第二个(嵌套的)手风琴。问题是 TypeScript 抱怨:
A VirtualizedList contains a cell which itself contains more than one VirtualizedList of the same orientation as the parent list. You must pass a unique listKey prop to each sibling list.
这完全没问题。但是当我将其添加listKey到我的时Accordion,TypeScript 抱怨No overload matches this call.
我怎样才能抑制这个警告?因为 Native Base 不提供listKey其Accordion.
这是代码:
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;
Run Code Online (Sandbox Code Playgroud)
快速解决:
您可以尝试//@ts-ignore哪个应该抑制警告。
较少有罪的解决方案:
如果您查看 的 NativeBase类型定义,Accordion您会发现没有listKey. 在底层,NativeBaseAccordion使用FlatList. 我们从 React Native的extends类型定义中知道,它有一个.FlatListVirtualizedListProps<ItemT>listKey
看看Accordion我们看到的实现,它获取FlatList 了所有的 propsAccordion,这意味着所有的FlatListprops 都应该被支持。因此Accordion应该扩展FlatList道具。您可以添加listKey到Accordion类型定义或发送 Github 问题。
免责声明:我从未使用过 Native Base。以上结论是通过查看代码得出的。
| 归档时间: |
|
| 查看次数: |
9372 次 |
| 最近记录: |