Ссылка «реакции-роутер-дом» не работает?

1

Это код в моем корневом компоненте:

<BrowserRouter>
  <Route path="/(:filter)" component={App}/>
</BrowserRouter>

Это код в компоненте Footer, который использует компонент FilterLink

const Footer = () => (
  <p>
    Show:
    {" "}
    <FilterLink filter="all"> 
      All 
    </FilterLink>
    {", "}
    <FilterLink filter="active">
      Active
    </FilterLink>
    {", "}
    <FilterLink filter="completed">
      Completed
    </FilterLink>
  </p>
);

Теперь это код в моем FilterLink, который использует Link from 'response-router-dom', который не работает

import { Link } from 'react-router-dom';

const FilterLink = ({ filter, children }) => (
  <Link 
    to={ filter === 'all' ? '' : filter }
    activeStyle={{
      textDecoration: 'none',
      color: 'black'
    }}
  >
  {children}
  </Link>
);

Я не могу найти ошибку, так как она не бросает никаких ошибок, но просто заставляет мое приложение ничего не отображать после того, как я применил этот код, который использует ссылку. Помогите?

Теги:
react-router
react-router-dom

1 ответ

1

У меня была такая же проблема. Это из-за изменения синтаксиса для необязательных параметров.

Изменить /(:filter) на /:filter?

Вот руководство по использованию response-router v4: https://redux.js.org/docs/advanced/UsageWithReactRouter.html#connecting-react-router-with-redux-app

У меня была еще одна проблема с этим примером. В NavLink отсутствовала exact подсказка, поэтому, если вы нажмете FilterLink "completed" или "active", то у вас все еще есть активные "все".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню