首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在本机反应中制作通用组件?

如何在本机反应中制作通用组件?
EN

Stack Overflow用户
提问于 2022-05-26 20:26:18
回答 1查看 95关注 0票数 0

我想要做一个通用组件,但是我怎么做呢?

型号:

代码语言:javascript
运行
复制
export interface ISelectOptionsRLV<T, C> {
  data: T[];
  onPress: (option: C[]) => void;
}

GenericComponentList:

代码语言:javascript
运行
复制
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({})

现在我得到了这个错误:

代码语言:javascript
运行
复制
Generic type 'ISelectOptionsRLV<T, C>' requires 2 type argument(s)

我知道这个错误,我必须设置我的类型,但它不是通用的,我的意思是,我需要4个我的平板列表组件,每种数据类型是不同的。所以我要做4个文件,或者我怎么做?我希望我的所有数据都在组件泛型中,所以我不想创建4个组件,我想要一个Flatlist组件,每次都使用它

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-26 20:42:05

试试这个:

  • GenericComponentList:

代码语言:javascript
运行
复制
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({})

AnotherComponent:

代码语言:javascript
运行
复制
const AnotherComponent = () => {
  return (
    <SelectOptionsRLV<yourType, yourType> data={yourData} onPress={yourFunction} />
  )
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72397677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档