Sunt nou să reacționeze și să reacționeze router dom v5, de asemenea, engleza mea e de rău. Va multumesc anticipat pentru ajutor.
problema mea: Am 2 Principalele Rute în App.js traseu
import { Suspense } from 'react';
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom'
/* Pges */
import AdminContainer from './Pages/Admin/AdminContainer';
import PublicContainer from './Pages/Public/PublicContainer';
import NotFound from './Pages/NotFound'
import AuthContainer from './Pages/Auth/AuthContainer';
/* Protected Route */
/* Helpers */
function App() {
console.log("APP")
return (
<Suspense fallback={(<p>Loading</p>)}>
<Router>
<Switch>
<Route path="/auth" component={AuthContainer} />
<Route path="/admin" component={AdminContainer} />
<Route path="/*" component={PublicContainer} />
<Route path="*" component={NotFound} />
</Switch>
</Router>
</Suspense>
)
}
export default App;
la authcontainer au 2 sub rute "/semnez" "/inregistreaza-te"
import React from "react";
import {
BrowserRouter as Router,
Switch,
Route,
withRouter
} from "react-router-dom";
// PAGES
import Signin from "../Auth/Signin";
import Signup from "../Auth/Signup";
const AuthContainer = () => {
console.log("AUTH")
return (
<div>
<Router>
<Switch>
<Route exact path="/auth" component={Signin}/>
<Route exact path="/auth/signin" component={Signin}/>
<Route exact path="/auth/signup" component={Signup}/>
</Switch>
</Router>
</div>
);
};
export default withRouter(AuthContainer);
apoi mi publiccontainer au 3 sub rute "/" "/produs" "/mycart"
/* Dependencies */
import { Route, Switch, BrowserRouter as Router } from 'react-router-dom'
/* Components */
import Header from "../../Components/Header"
import Products from "./Products"
import Home from "./Home"
import UserProfile from "../User/AccountProfile"
import MyCart from '../Public/MyCart'
const PublicContainer = () => {
console.log("PUBLIC")
return (
<div>
<Router>
<Header />
<Switch>
<Route exact path='/' render={(props) => <Home />} />
<Route exact path='/products' render={(props) => <Products />} />
<Route exact path='/mycart' render={(props) => <MyCart isAuth={false} />} />
</Switch>
</Router>
</div>
)
}
export default PublicContainer
în coșul meu componentă va face doar dacă isAuth este adevărat, altfel se va redirecționa către "/auth/semnez"
import React from 'react'
import { Redirect } from 'react-router'
const MyCart = ({isAuth}) => {
if(!isAuth)
return (<Redirect from='*' to='/auth/signin'></Redirect>)
return (
<div>
my cart
</div>
)
}
export default MyCart
Problema este, ei încearcă să redirecționeze la "/auth/semnez", dar este încă în "/" pagina
Când m-am lovit reîncărcați-o în cele din urmă de redirecționare a "/auth/semnez"
Cum pot rezolva aceasta problema, apreciez ajutorul tau
UPDATE
aceasta este o imagine de ansamblu a mea rute planificate
Apropo, cred că atunci când mycart isAuth este false atunci încearcă să Link-ul de la /auth/semnez care provoacă link-ul în partea de sus url-ul pentru a indica în mod corect pentru auth semnez, dar după aceea se verifică numai subroutes de publiccontainer în loc de verificarea app.js rute
Dar când am reincarca, se începe căutarea traseul corect din app.js rutele care reveni așteptat traseu & page care este semnul în