Reactjs 如何通过react路由器重定向登录和注册页面
我是REACTE的新手,我已经搜索过了,但找不到任何解决方案。我的问题是设置个人页面,如果想访问主页,我必须先登录,没有其他选项。所以我使用react路由器的重定向来实现这一点。我检查localStorage用户并重定向到/signin。但如果我没有任何帐户,我必须先注册。因此,我在登录页面中有一个链接“创建帐户”移动到注册页面(/signup)。问题就在这里。重定向仅允许访问/登录。在这种情况下,我不知道如何访问这两个页面。能给我点建议吗?谢谢你阅读我的问题。 这是我的密码: homeTemplate的index.jsReactjs 如何通过react路由器重定向登录和注册页面,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,我是REACTE的新手,我已经搜索过了,但找不到任何解决方案。我的问题是设置个人页面,如果想访问主页,我必须先登录,没有其他选项。所以我使用react路由器的重定向来实现这一点。我检查localStorage用户并重定向到/signin。但如果我没有任何帐户,我必须先注册。因此,我在登录页面中有一个链接“创建帐户”移动到注册页面(/signup)。问题就在这里。重定向仅允许访问/登录。在这种情况下,我不知道如何访问这两个页面。能给我点建议吗?谢谢你阅读我的问题。 这是我的密码: homeTemp
return (
<>
<Header />
{props.children}
<Footer />
</>
);
}
const HomeTemplate = ({ exact, path, component }) => {
if (!localStorage.getItem("KhachHang")) return <Redirect to="/signin" />;
return (
<LayoutHome>
<Route exact={exact} path={path} component={component} />
</LayoutHome>
);
};
export default HomeTemplate;
返回(
{props.children}
);
}
常量HomeTemplate=({exact,path,component})=>{
如果(!localStorage.getItem(“KhachHang”))返回;
返回(
);
};
导出默认HomeTemplate;
app.js
const dispatch = useDispatch();
useEffect(() => {
dispatch(LayThongTinHeThongRap());
dispatch(LayDanhSachPhim());
}, []);
const showLayoutHome = (routes) => {
if (routes && routes.length > 0) {
return routes.map((item, index) => {
return (
<HomeTemplate
key={index}
exact={item.exact}
path={item.path}
component={item.component}
/>
);
});
}
};
return (
<BrowserRouter>
<Switch>
{showLayoutHome(routeHome)}
<Route path="/signin" component={SignIn} />
</Switch>
</BrowserRouter>
);
} ```
const dispatch=usedpatch();
useffect(()=>{
调度(laythongthinhethongrap());
调度(LayDanhSachPhim());
}, []);
const showLayoutHome=(路由)=>{
如果(路由和路由长度>0){
返回路线图((项目,索引)=>{
返回(
);
});
}
};
返回(
{showLayoutHome(routeHome)}
);
} ```
如果用户未登录,您如何事先知道他们没有帐户,需要先注册?似乎您的sign
组件应该提供登录和验证选项,或者导航到“/signup”路径供用户注册。抱歉,我的英语不好。正如您所说,也许我应该向我的signin组件添加一个布尔标志。当单击“创建帐户”时,更改标志值,选项为signin或signup pageThat can work,但我指的是类似这样的内容:
,其中signin
组件导航到“/signup”以注册用户。我同意Drew的观点。您最好在登录组件上有一个链接标签,该标签会转到注册页面,让用户决定是否需要注册。