Mohamed Ashif
Mohamed Ashif

Reputation: 49

React Router DOM not rendering the page

I am new to react js and I am trying to do page navigation with react-router-dom and I could not load the page even after trying many times.

index.js

import React from "react";
import ReactDOM from 'react-dom';
 
import 'bootstrap/dist/css/bootstrap.css';
import { App } from './App' 
const element=  <App />;
ReactDOM.render(element, document.getElementById('root'));

App.js

import React from 'react' 
import {Route, BrowserRouter as Router, Link} from 'react-router-dom';
import Home from './components/Home';
import Hello from './components/Hello';
export function App()
{
    return(
        <div>
        <Router> 
             <div className='container'>
                <div className='navbar-header'>
                    <ul className='nav navbar-nav'>
                        <li> <Link to={'./components/Home'}>Home</Link> </li>
                        <li><Link to={'./components/Hello'}>Hello</Link></li>
                    </ul>
                </div>
            </div>                           
        </ Router>
        </div>

    );
}

src/components/Home.jsx

In Home.jsx, I am trying to get data from API and that page works fine.

Thanks.

Upvotes: 1

Views: 1815

Answers (2)

Hritik Sharma
Hritik Sharma

Reputation: 2010

You have to set the Routes first for each page then only you will be able to navigate to the pages .

Please go through this resource resource.

This is a very good resource to follow . I hope this solves your issue :)

Upvotes: 1

Wraithy
Wraithy

Reputation: 2056

You are using react router wrong way. Link is just Router's implementation of <a> tag... it just change your url and redirect your youter.. you need to specify Route which should be displayed:



export function App()
{
    return(
        <div>
        <Router> 
             <div className='container'>
                <div className='navbar-header'>
                    <ul className='nav navbar-nav'>
                        <li> <Link to={'/'}>Home</Link> </li>
                        <li><Link to={'/hello'}>Hello</Link></li>
                    </ul>
                </div>
            </div> 
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/hello" component={Hello} />
</Switch>                          
        </ Router>
        </div>

    );
}

Upvotes: 2

Related Questions