javascript - 如何在 React 中创建带有登录组件的多页面应用程序?

标签 javascript reactjs react-router

最近我尝试通过 React 构建一个 Web 平台。一切都很好,一切都工作顺利。 但是当我尝试为用户登录创建不同的页面时遇到了很多问题:

  1. 我的代码中已经有路由,因此当我尝试将其他路由添加到另一个 js 文件时,它们根本不起作用。

  2. 我不知道如何在 React Router 中进行身份验证,我尝试了很多方法,遵循了很多教程,但没有任何结果。

<Switch>
    <Route exact path='/' component={Feed}/>
    <Route path="/user" component={Profilo}/>
    <Route path='/explore-page' component={ExplorePage} />
    <Route path='/events-page' component={EventsPage} />
    <Route path='/calendar-page' component={CalendarPage} />
    <Route path='/stats-page' component={StatsPage} />
    <Route path='/form' component={FormPage}/>
    <Route path="/user" component={Profilo}/>
    <Route path="/user/:userId" component={Profilo} />
</Switch>

这是我当前在 div 中使用的所有路由来渲染 React 组件。 正如我之前所说,在上层文件中添加其他路由不会给我响应。

所以,最后我想问一下,我应该把登录和主页的路由放在哪里?在那里还是我应该移动所有东西?

提前谢谢您。

最佳答案

一种简单的方法是在渲染函数中添加处理身份验证的逻辑。

如果用户未经过身份验证。重定向到登录页面。否则,转到您的组件

render() {
    if (!this.props.isAuth) {
        return (
            <Switch>
                <Route exact path="/" component={Login} />
                <Redirect to="/" />
            </Switch>
        );
    }
    return (<Switch>
        <Route
            // your router
        />
    </Switch>);
}

关于javascript - 如何在 React 中创建带有登录组件的多页面应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59373471/

相关文章:

javascript - 当字段值长度大于 0 时显示按钮重置?

未找到 Javascript 函数,但在 html 中引用了该函数

javascript - react : how to change page when using react-navigation and react-router?

css - react /单页/结构页眉/内容/页脚

javascript - Moment JS 在 Nodejs 中给出了错误的时间

javascript - 如何制作删除 div 所在位置的按钮?

javascript - 不要在 Material ui选择中单击图标时选择menuItem

javascript - react JS : Does my Application work correctly?

javascript - 如何为随当前值滑动的 slider 制作标签?

reactjs - React Router v4 和嵌套路由 : index navlink always remain active