React & react router dom v5'te yeniyim, ingilizcem de kötü. Bana yardım ettiğin için şimdiden teşekkür ederim.
benim sorunum: Uygulamamda 2 Ana Rotam var.js rotası
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;
authcontainer'ın 2 alt yolu vardır "/imzala" "/kayıt"
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);
sonra benim publiccontainer 3 alt yolları var "/" "/ürün" "/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
sepetim bileşeni yalnızca ısAuth doğruysa işleyecek, aksi takdirde "/auth/signin"e yönlendirecektir.
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
Sorun şu ki, "/auth/signin "e yönlendirmeye çalışıyor ancak hala" / " sayfasında
Yeniden yükle düğmesine bastığımda nihayet "/auth/signin"e yönlendirildi.
Bu sorunu nasıl çözebilirim, yardımınız için gerçekten minnettarım
Güncelleme
bu, planlanan rotalarıma genel bir bakış
Bu arada, mycart ısAuth yanlış olduğunda, üst url'deki bağlantının doğru şekilde auth signin'e işaret etmesine neden olan /auth/signin'e Bağlanmaya çalıştığını düşünüyorum, ancak bundan sonra yalnızca publiccontainer'ın alt rutinlerini kontrol ediyor.uygulamayı kontrol etmek yerine.js rotaları
Ancak yeniden yüklediğimde, uygulamadan doğru rotayı aramaya başlar.beklenen rotayı döndüren js rotaları ve oturum açma sayfası