首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >映射多个反应本机组件

映射多个反应本机组件
EN

Stack Overflow用户
提问于 2021-07-30 10:01:21
回答 2查看 296关注 0票数 0

我有多个反应-本机组件(超过100),每一个是不同的。更准确地说,每个组件实际上都是一个react本机svg组件,如下所示

代码语言:javascript
复制
import * as React from "react";
import Svg, { Circle, Path } from "react-native-svg";

function SvgAlert(props) {
  return (
    <Svg
      width={24}
      height={24}
      fill="none"
      xmlns="http://www.w3.org/2000/svg"
      {...props}
    >
      <Circle cx={12} cy={16.75} r={1.25} fill="#000" />
      <Path fill="#000" d="M11 6h2v8h-2z" />
    </Svg>
  );
}

export default SvgAlert;

我想从组件目录导入所有这些svgComponents,并在滚动视图中呈现它们。

代码语言:javascript
复制
<ScrollView>
  <SvgComp1>
  <SvgComp2>
  .
  .
  <SvgComp100>
<ScrollView>

我是否可以通过这些组件或其他方法来映射这些组件,以节省一个一个地导入每个组件并手动呈现它的繁琐工作(就像组件或其他组件的映射)?

代码语言:javascript
复制
<ScrollView>
  {
    components.map(Each=>{
       return <Each/>
      })
  }
<ScrollView>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-30 10:10:08

您可以只导入每个svg一次,然后重用它,导入包含所有svg的数组。类似于:

AllSvgs.js

代码语言:javascript
复制
import SVG1 from '...';
import SVG2 from '...';
import SVG3 from '...';
...

export default SVGsArray = [SVG1, SVG2, SVG3, ...];

然后在一个组件中:

代码语言:javascript
复制
import SVGsArray from '../path/to/AllSvgs.js';
...

<ScrollView>
  {
    SVGsArray.map(Each)=>{
       return <Each/>
  }
<ScrollView>
票数 0
EN

Stack Overflow用户

发布于 2021-07-30 10:12:46

我所做的工作有点不同,我们可以将所有组件导入到单个文件中,并以对象格式存储它们,这样我们就可以访问您想访问的任何地方,例如对象。

代码语言:javascript
复制
import A from 'path/to/aComponent';
import B from 'path/to/bComponent';
import C from 'path/to/cComponent';
import D from 'path/to/dComponent';

export const SVGComponents = {
   aComponent: A,
   bComponent: B,
   cComponent: C,
   dComponent: D,
}

当您尝试呈现时,尝试从对象读取并呈现它。

代码语言:javascript
复制
import SVGComponents from 'path/to/SVGComponents';

<ScrollView>
    {
        components.map(name)=>{
        return <SVGComponents[name] />
    }
<ScrollView>

您可以将这些组件存储在您需要的任何导入anyWhere中,但您确实具有常量的名称

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68589071

复制
相关文章

相似问题

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