Soy nuevo en reaccionar y reaccione router dom v5, también mi inglés es malo. Gracias de antemano por ayudarme.
mi problema: Tengo 2 Rutas Principales en mi App.js ruta
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;
el authcontainer tiene 2 sub rutas "/signin" "/signup"
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);
a continuación, el mi publiccontainer tiene 3 sub rutas "/" "/producto" "/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
mi carro componente sólo haría si isAuth es verdadera, de lo contrario se le redirigirá a "/auth/signin"
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
El problema es que su tratando de redirigir a "/auth/signin", pero que todavía se encuentra en "/" de la página
Cuando llegué a recargar finalmente redirigir a "/auth/signin"
¿Cómo puedo solucionar este problema, realmente aprecio su ayuda
ACTUALIZACIÓN
este es el resumen de mis rutas planificadas
Por cierto creo que cuando la mycart isAuth es falso entonces que intenta Vincular a /auth/signin que hace que el enlace en la parte superior de la url correctamente el punto de autenticación para iniciar sesión, pero después de que sólo comprueba el subroutes de la publiccontainer en lugar de comprobar el app.js rutas
Pero cuando voy a recargar, es empezar a buscar la ruta correcta de la app.js las rutas que devolver la ruta y la página que es el signo en