#reactjs #react-router #react-router-dom
Вопрос:
Я использую маршрутизатор react, но когда я меняю страницу, мой компонент ничего не отображает, просто показывает белую страницу, но она отображается при обновлении страницы
Это мой список маршрутов: routes.tsx
И это мое приложение.tsx : Приложение.tsx
index.tsx: индекс.tsx
Комментарии:
1. Добавьте свой код в песочницу
2. Можете ли вы объяснить, что вы видели до и после обновления страницы ? Вы проверяли журналы консоли в инструментах разработки ?
3. Не публикуйте изображения кода. Опубликуйте сам код.
Ответ №1:
<Route>
Должны быть покрыты <Switch></Switch>
тегами и <BrowserRouter></BrowserRouter>
тегами, импортированными из import { Switch, Route, BrowserRouter } from "react-router-dom";
этого:
import { Switch, Route, BrowserRouter } from "react-router-dom";
import Home from "./Pages/Home";
const App = () => {
return (
<>
<BrowserRouter>
<Switch>
<Route path="/Home">
<Home />
</Route>
</Switch>
</BrowserRouter>
</>
);
};
export default App;
Вы можете добавить компонент навигации и настроить Ссылки для маршрутизации к другим компонентам:
import React from "react";
import { Link } from "react-router-dom";
const Nav = () => {
return (
<Link to="Home" >
Home
</Link>
);
};
export default Nav;
Пожалуйста, поместите свой код в песочницу, чтобы люди могли понять его более четко
Ответ №2:
Вместо того, чтобы иметь пустой контейнер <> <></> используйте переключатель для переноса ваших маршрутов
<Switch>
...routes
</Switch>
затем вы можете просто импортировать его таким, каким вы были, без включения переключателя в качестве:
<Suspense>
<Routes />
</Suspense>
Ответ №3:
Вам не хватает обертывания вашего коммутатора и маршрутов <BrowserRouter>
. Вы можете использовать BrowserRouter as Router
Проверьте основной пример.
Ответ №4:
Вам нужно импортировать BrowserRouter
, а Router
не из react-router-dom
пробовать
import { BrowserRouter as Router, Switch } from 'react-router-dom';
вместо
import { Router, Switch } from 'react-router-dom';