【发布时间】:2022-01-13 19:01:21
【问题描述】:
我使用 fireBase 和 PrivateRoute 为登录用户进行了身份验证。 但是,当我进入其他组件之一(不是产品登录或注册)时,URL 更新但它没有显示。 应用.js
function App() {
return (
<AuthProvider>
<Switch>
<PrivateRoute exact path='/' component={MainPageComp}/>
<Route path='/Signup' component={SignupComp}/>
<Route path='/Login' component={LoginComp}/>
</Switch>
</AuthProvider>
);
}
在MainPageComponent中也有Routes:
<Switch>
<PrivateRoute exact path='/' component={ProductsComp}/>
<Route path='/Products' component={ProductsComp}/>
<Route path='/Customers' component={CustomersComp}/>
<Route path='/Purchases' component={PurchasesComp}/>
<Route path='/AddProduct' component={AddProductComp}/>
<Route path='/EditProduct/:id' component={EditProductComp}/>
<Route path='/EditCustomer/:id' component={EditCustomerComp}/>
</Switch>
PrivateRoute.js:
export default function PrivateRoute({component:Component,...rest}){
const {currentUser} = useAuth()
return(
<Route
{...rest}
render={props=>{
return currentUser?<Component {...props}/>:<Redirect to='/login'/>
}}>
</Route>
)
}
感谢大家的帮助
【问题讨论】:
标签: reactjs firebase-authentication react-router-dom