@plinetus
верстальшик

Почему в React компонент Navigate не перерендеривается?

Добрый времени суток. Недавно я начал изучать реакт и у меня возникли проблемы с компонентом Navigate. Проблема в том, что при перерендеривании навигейта он не перерендеревается и не видит новых ссылок. Благодарю за помощь!

import React, { useState } from 'react';
// import { BrowserRouter } from 'react-router-dom'
import {Routes, Route, Navigate} from 'react-router-dom'
import { CreatePage } from './components/CreatePage';
import { AuthPage } from './components/AuthPage';
import { DetailPage } from './components/DetailPage';


import './styles/App.css'

function App() {
  const [isAuth, setIsAuth] = useState(false)

  const authContent = () => {
    if(isAuth){
      return(
        <Routes>
          <Route path='/create' element={<CreatePage />} />
          <Route path='/links' element={<AuthPage />} />
          <Route path='/detail/:id' element={<DetailPage />} />
          <Route path='*' element={<Navigate to="/create"/>} />   
        </Routes>
      )
    }
    return(
      <Routes>
        <Route path='/' element={<AuthPage />} />
        <Route path='*' element={<Navigate to="/"/>} />
      </Routes>
    )
  }
  const auth = () => {
    setIsAuth(!isAuth)
  }


  return (
    <div className="App">
        <h1>Home page</h1>
        {authContent(isAuth)}
        <button onClick={auth}>Login/Logout</button>
    </div>
  );
}

export default App;
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 1
@plinetus Автор вопроса
верстальшик
Я не правильно описал саму проблему. При нажатии на кнопку идёт "авторизация" и после нее загружаются новые новой. Но проблема в том, что роут с навигейтом, который рендерится в самом начале(когда пользователь не "авторизован"), при авторизации пользователя не переренденивается и не видит новых ссылок.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы