【问题标题】:Is it possible to pass props in react import是否可以在反应导入中传递道具
【发布时间】:2021-10-12 15:23:22
【问题描述】:

所以我有一个名为“Technologies”的组件名称,我使用react-icons 并通过道具将其传递给不同的组件名称“图标”或不同的页面。

技术页面:

import Icon from './subcomponents/Icon';

const Technologies = () => {
    return (
      <div className="px-4 py-16 mx-auto sm:max-w-xl md:max-w-full lg:max-w-screen-xl md:px-24 lg:px-8 lg:py-20">
        <div className="grid grid-cols-2 gap-5 row-gap-5 sm:grid-cols-3 lg:grid-cols-6">
          <Icon name={AiFillAndroid}/>
        </div>
      </div>
    );
  };

  export default Technologies;

这是图标页面,我正在接收道具数据:

import { IconContext } from "react-icons";
import {props.name} from 'react-icons/all';  **// Here is the issue "Is it possible to receive props data like this"**

export default function Icon(props) {
    return (
        <>
            <div className="text-center">
            <div className="flex items-center justify-center w-10 h-10 mx-auto mb-4 rounded-full bg-indigo-50 sm:w-12 sm:h-12">
            <IconContext.Provider value={{ style: { color: '#fff' } }}>
                            <{props.name} /> **// Here is the issue "Is it possible to receive props data like this"**
            </IconContext.Provider>
            </div>
            <h6 className="mb-2 text-sm font-bold leading-5 tracking-wider uppercase">
              World
            </h6>
          </div>
        </>
    )
}

【问题讨论】:

    标签: reactjs react-props react-icons


    【解决方案1】:

    您不能通过导入直接访问,而是使用**children**

    【讨论】:

    • 这里 Technologie.js 是我发送道具数据的父节点,Icon.js 是我接收数据的子节点,但它在导入时也需要 react-icon 名称。我遇到了困难
    • 使用 react-icon,你不能直接寻找材料 UI 图标来做出反应,它会适合你的场景,或者你想在 Technologies.js 中使用 react-cons 导入图标然后导入 technologies.js作为其他组件中的组件
    【解决方案2】:

    解决了:

    在 Technologies.js 中:

    import React from 'react';
    import { IconContext } from "react-icons";
    import * as Icons from 'react-icons/all';
    import IconsData from './subcomponents/IconsData';
    
    const Technologies = () => {
        return (
            <div className="px-4 py-16 mx-auto sm:max-w-xl md:max-w-full lg:max-w-screen-xl md:px-24 lg:px-8 lg:py-20">
                <div className="grid grid-cols-2 gap-5 row-gap-5 sm:grid-cols-3 lg:grid-cols-6">
                    {IconsData.map((item, index) => {
                        return (
                            <div className="text-center" key={index}>
                                <div className="flex items-center justify-center w-10 h-10 mx-auto mb-4 rounded-full bg-indigo-50 sm:w-12 sm:h-12">
                                    <IconContext.Provider value={{ style: { color: '#fff' } }}>
                                        {item.icon}
                                    </IconContext.Provider>
                                </div>
                                <h6 className="mb-2 text-sm font-bold leading-5 tracking-wider uppercase">
                                    {item.title}
                                </h6>
                            </div>
                        );
                    })}
    
                </div>
            </div>
        );
    };
    
    export default Technologies;
    

    在 IconsData.js 中:

    import React from 'react'
    import * as Icons from 'react-icons/all';
    
    const IconsData = [
    {
        title: 'Wordpress',
        icon: <Icons.ImWordpress />
    },
    {
        title: 'ReactJs',
        icon: <Icons.GrReactjs />
    }
    ];
    
    export default IconsData;
    

    工作!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 2020-01-07
      • 2020-02-07
      相关资源
      最近更新 更多