React-icons и React Router
Контекст
Я разрабатываю панель навигации для своего приложения, и мой проект использует response -router и response -router-dom для управления маршрутизацией и иконки реакции для извлечения значков.
Код
import React from 'react';
import { NavLink } from 'react-router-dom';
import { MdAssessment } from 'react-icons/md'
import Styles from './NavBar.module.css'
const NavBar = (props) => {
return (
<nav className={Styles.navBar}>
{navIcon}
<NavLink
activeStyle={{ color : 'red' }}
className={`${Styles.navBar__Dashboard} `}
exact to="/">
<MdAssessment />
</NavLink>
<NavLink
activeStyle={{ color: 'red' }}
className={Styles.navBar__Requests}
to="/requests">
Requests
</NavLink>
<NavLink
activeStyle={{ color: 'red' }}
className={Styles.navBar__Tasks}
to="/tasks">
Tasks
</NavLink>
</nav>
)
}
export default NavBar
Проблема
Я пытаюсь экстраполировать activeStyle функциональность NavLink на мой значок. Учитывая, что response-icons предоставляет вам компонент в виде значков, я борюсь с тем, какой подход использовать:
- Должен ли я быть завернутым в HOC?
- Должен ли я инкапсулировать в кастомный хук?
Заметки
Я пробовал использовать оба подхода, но не могу обойти его. Я пробовал реализовать useRef, useEffect при чтении в местоположение с помощью хука useLocation. Есть ли какие-нибудь предложения по лучшей реализации общей функции NavIcon с учетом этого контекста?
1 ответ
Используя фигурные скобки, вы импортируете значок как именованный импорт. Таким образом, импорт работает, только если файл содержит именованный экспорт с тем же именем, которое вы ему присвоили. См. Этот вопрос для получения дополнительной информации.
Согласно документации пакета, это правильный способ импорта значка. Можете ли вы проверить, совпадает ли именованный экспорт с импортированным?