Почему компонент Link из react-router-dom не принимает реквизиты имени класса?

#javascript #reactjs #react-router

Вопрос:

Вот мой PageLink компонент,

 export const PageLink: React.FC<IProps> = ({ id, question, searchBy }) => {

  return (
    <Link to={{pathname: `results/${id}`, search: `?sortBy=${searchBy}`}} className={styles.PageLink}>
      {question}
    </Link>
  );
};
 

Ни один из стилей, в которых я написал, PageLink не применяется к этому компоненту. (Кстати, для этого я использую css-модули).

Основываясь на других ответах в SO, я заменил Link на NavLink , и это работает нормально.

Итак, у меня есть 2 вопроса,

  1. Почему компонент Link не принимает реквизиты имени класса?

Основываясь на этой странице с проблемой, люди говорят, что это не ошибка.

  1. Есть ли что-то неправильное в использовании NavLink вместо Link (для моего варианта использования)

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

1. Это работает нормально, вы можете проверить настройки своего проекта или настройки модуля CSS.

2. Цитата из предоставленной вами ссылки на github: Опять же, это связано не с нашей библиотекой, а с вашей конфигурацией или инструментами. Что-то еще перехватывает и отфильтровывает реквизит имени класса

3. И ссылка, и NavLink имеют имя класса и работают нормально.

4. Я провел тест на последнем маршрутизаторе. Какова версия вашего маршрутизатора?

5. Я использовал ту же версию, вот мой тест, stackblitz.com/edit/react-b6r9rv?file=src/App.js

Ответ №1:

Обновить

Я только что перезапустил свой сервер, и он тоже работает Link . Я подозреваю, что с компилятором ts происходит что-то забавное. Что еще более странно, я заметил, что многие люди задают один и тот же вопрос на разных форумах.