import Home from "./pages/home/Home";
import Profile from "./pages/profile/Profile";
import Login from "./pages/login/Login";
import Register from "./pages/register/Register";
import Messenger from "./pages/messenger/Messenger";
import {
BrowserRouter as Router,
Switch,
Route,
Redirect,
} from "react-router-dom";
import { useContext } from "react";
import { AuthContext } from "./context/AuthContext";
function App() {
const { user } = useContext(AuthContext);
console.log(user);
return (
<Router>
<Switch>
<Route exact path="/">
{user ? <Home /> : <Register />}
</Route>
<Route path="/login">{user ? <Redirect to="/" /> : <Login />}</Route>
<Route path="/register">
{user ? <Redirect to="/" /> : <Register />}
</Route>
<Route path="/messenger">
{!user ? <Redirect to="/" /> : <Messenger />}
</Route>
<Route path="/profile/:username">
{!user ? <Redirect to="/" /> : <Profile />}
</Route>
<Route path="*">
{user ? <Profile /> : "404 ERROR: Page does not exists"}
</Route>
</Switch>
</Router>
);
}
export default App;
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import { AuthContextProvider } from "./context/AuthContext";
ReactDOM.render(
<React.StrictMode>
<AuthContextProvider>
<App />
</AuthContextProvider>
</React.StrictMode>,
document.getElementById("root")
);
Вот так выглядит мой файл приложения. Не уверен, почему переход по приложению через URL-адрес приводит к тому, что приложение всегда сбрасывается.
Например, в приложении есть виджет, который при нажатии перенаправляет пользователя в чужой профиль. Но если я перейду к профилю этого человека, используя вместо этого URL-адрес, все сбрасывается.
createContext()
? reactjs.org/docs/context.html#reactcreatecontext - person j-petty   schedule 25.06.2021<Link/>
? Контекст теряется при обновлении страницы, но не при правильных ссылках маршрутизатора. Я спрашиваю, потому что я не вижу ссылок илиuseHistory
в вашем коде. - person zero298   schedule 25.06.2021