Можно ли передать реквизиты при импорте react

#reactjs #react-props #react-icons

Вопрос:

Поэтому у меня есть это имя компонента под названием «Технологии», где я использую 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>
        </>
    )
}
 

Ответ №1:

Вы не можете получить прямой доступ через импорт вместо использования **children**

Комментарии:

1. Здесь Technologie.js является родителем, откуда я отправляю данные реквизитов и Icon.js является дочерним, где я получаю данные, но для этого также требуется имя значка реакции при импорте.. где я сталкиваюсь с трудностями

2. с помощью react-значка вы не можете напрямую искать значки пользовательского интерфейса материалов для react, это будет соответствовать вашему сценарию, или вы хотите использовать значок импорта react-cons в Technologies.js затем импортируйте 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;
 

СРАБОТАЛО !!!