我想制作一個通用組件,但我該怎么做呢?
模型:
export interface ISelectOptionsRLV<T, C> {
data: T[];
onPress: (option: C[]) => void;
}
通用組件串列:
import { StyleSheet, Text, View, FlatList } from 'react-native'
import React from 'react'
import { ISelectOptionsRLV } from './Model'
const SelectOptionsRLV = ({ data, onPress }: ISelectOptionsRLV) => {
return (
<FlatList
data={data}
...
/>
)
}
export default SelectOptionsRLV
const styles = StyleSheet.create({})
現在我得到這個錯誤:
Generic type 'ISelectOptionsRLV<T, C>' requires 2 type argument(s)
我知道這個錯誤我必須設定我的型別,但它不是通用的,我的意思是我需要 4 個我的 flatlist 組件并且每種資料型別都不同。那么我必須制作4個檔案,或者我該怎么做?我希望我的所有資料都在通用組件中,所以我不想創建 4 個組件我想要一個 Flatlist 組件并每次都使用它
uj5u.com熱心網友回復:
嘗試這個:
- 通用組件串列:
import { StyleSheet, Text, View, FlatList } from 'react-native'
import React from 'react'
import { ISelectOptionsRLV } from './Model'
const SelectOptionsRLV = <T, C>({ data, onPress }: ISelectOptionsRLV<T, C>) => {
return (
<FlatList
data={data}
...
/>
)
}
export default SelectOptionsRLV;
const styles = StyleSheet.create({})
另一個組件:
const AnotherComponent = () => {
return (
<SelectOptionsRLV<yourType, yourType> data={yourData} onPress={yourFunction} />
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/481463.html
上一篇:打字稿錯誤:物件可能未定義
下一篇:'(dispatch:Dispatch<ShopDispatchTypes>)=>Promise<void>'型別的引數不可分配給'AnyA
