Я изучаю маршрутизатор React и добавил в Navbar и объявил маршрутизацию в другом файле. Ссылки не перенаправляют на указанный путь, но. Когда я пытаюсь дать теги, это работает отлично. Я даже пытался реализовать маршрутизацию в компоненте Nav, но это тоже не работает. Я мог бы использовать должным образом, я думаю. Вот скриншот проблемы и код.
Индекс. js
import ReactDOM from 'react-dom';
import React, { Component } from 'react'
import Nav from './Nav'
import App from './App';
import {
BrowserRouter,
Switch,
Route,
Redirect
} from "react-router-dom";
import Login from './Login';
import Signup from './Signup';
import Home from './Home';
import Notfound from './Notfound';
import Country from './Country'
import Fire from './Fire';
export default class Auth extends Component {
constructor() {
super();
this.state = {
user: {}
}
this.authListener = this.authListener.bind(this);
this.logout=this.logout.bind(this);
}
componentDidMount() {
this.authListener();
}
authListener = () => {
Fire.auth().onAuthStateChanged((user) => {
console.log(user);
if (user) {
this.setState({ user });
console.log("if user" + user)
} else {
this.setState({ user: null });
console.log("user not logged in")
}
});
}
logout= () => {
Fire.auth().signOut();
}
render() {
return (
<div>
<Nav user={this.state.user} logout={this.logout}/>
<BrowserRouter>
<Switch>
<Route path="/signup">
<Signup />
</Route>
<Route path="/login">
<Login />
</Route>
<Route exact path="/data">
<App />
</Route>
<Route path="/data/:id">
<Country />
</Route>
<Route exact path="/">
<Home />
</Route>
<Route path="/not-found" component={Notfound} />
<Redirect to="/not-found" />
</Switch>
</BrowserRouter>
</div>
)
}
}
ReactDOM.render(
<Auth />
,
document.getElementById('root')
);
Nav. js
import React from 'react'
import Navbar from "react-bootstrap/Navbar";
import Button from "react-bootstrap/Button";
import {
BrowserRouter as Router,
Switch,
Route,
Link
} from "react-router-dom";
export default function Nav(props) {
return (
<div>
<Router>
<Navbar bg="dark" variant="dark">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<Link to="/">Home</Link>
</li>
{!props.checkUser ?
[<li class="nav-item">
<Link to="/login">Login</Link>
</li>,
<li class="nav-item">
<Link to="/signup">Register</Link>
</li>] :
[<li>
<Link to="/data">Data</Link>
</li>,
<li>
<Link onClick={props.logout}>Logout</Link>
</li>]}
</ul>
</Navbar.Brand>
</Navbar>
</Router>
</div>
)
}