reactjsnavigationreact-routerreact-router-dommulti-page-application

How to redirect to another class component/Page in ReactJs


How to redirect from one class component to another class component/fresh page in ReactJS.

Currently, I am able to load new components through the link tags in react-router.
but then I want to redirect to another class component just like href in HTML to another fresh page where the previous states will not be available and it's a fresh new class.

Example:-

I have 3 Pages

  1. LandingPage
  2. LoginPage
  3. SignupPage

Initially, LandingPage will be opened and after that when I click the respective screen it will open. How can i load a fresh LoginPage & SignupPage from LandingPage. Both SignupPage and LandingPage have a separate class component to manage the state of that particular screens. Please share some code references.

Thanks in advance.. :)


Solution

  • If you want to open login or signup page from landing page you can simply call history.push('/login') from landing page component to open login page. history is available in every route so can be called directly.

    index.js

    import { BrowserRouter, Route,Switch} from 'react-router-dom';
    import landingPage from './landingPage';
    import login from './login';
    import signup from './signup';
    
        render(){
                <BrowserRouter>
                    <Switch>
                      <Route exact={true} path="/" component={landingPage} />
                      <Route exact={true} path="/login" component={login} />
                      <Route exact={true} path="/signup" component={signup} />
                    </Switch>
               </BrowserRouter>
        }
    

    //landing page component

    landingPage =()=>{
      const openLoginPage= () => {
        history.push('/login'); //this will open login page on click of login button
    }
    
    return(<div> 
              < button onClick={openLoginPage}>login</button >
           </div>)
    }