#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;
СРАБОТАЛО !!!