1

I have a bug in my code and as always I can't find it, so please help me to find the way to make it work.

I have an app where I'm trying to add user authentication. I am referring the following tutorial: https://www.youtube.com/watch?v=xjMP0hspNLE&t=3384s

Problem: When I added the Private Route, it is rendering me a blank page.

Let's begin from the start.

Below are the files I have written.

Homepage:

import React from 'react'

const HomePage = () => {
  return (
    <div>
      <p> I am logged in to the home page!</p>
    </div>
  )
}

export default HomePage

LoginPage:

import React from 'react'

const LoginPage = () => {
  return (
    <div>
      <form>
        <input type="text" name="username" placeholder='Enter Username' />
        <input type="password" name="password" placeholder='Enter Password' />
        <input type="submit" />
      </form>
    </div>
  )
}

export default LoginPage

PrivateRoute:

import { Route, Redirect } from 'react-router-dom'

const PrivateRoute = ({ children, ...rest }) => {
  console.log("PrivateRoute worked fine!")
  return (
    <Route {...rest}>{children}</Route>
  )
}

export default PrivateRoute

Header.js:

import React from 'react'
import { Link } from 'react-router-dom'
const Header = () => {
  return (
    <div>
      <Link to="/">Home</Link>
      <span>|</span>
      <Link to="/login">Login</Link>
    </div>
  )
}

export default Header

App.js: Here, if instead of PrivateRoute, if I use Route, it is working perfectly

import './App.css';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'
import PrivateRoute from './utils/PrivateRoute'
import HomePage from './pages/HomePage'
import LoginPage from './pages/LoginPage'
import Header from './components/Header';

function App() {
  return (
    <div className="App">
      <Router>
        <Header />
        <Routes>
          <PrivateRoute path="/" element={<HomePage />} exact />
          <Route path="/login" element={<LoginPage />} />
        </Routes>
      </Router>
    </div>
  );
}

export default App;
Drew Reese
  • 165,259
  • 14
  • 153
  • 181
  • Hi, I went through the link. But can you please explain me in detail with the exact changes that need to be done? I am really sorry, but I am new to this. – Strange2608 Oct 27 '22 at 04:47

0 Answers0