Reactjs 重定向不';t在路由器v4中绘制组件

Reactjs 重定向不';t在路由器v4中绘制组件,reactjs,react-router,Reactjs,React Router,如果用户尚未登录,我将尝试重定向该用户。我使用isLoggedIn状态将其存储在redux状态,并将其设置为false,除非用户登录 在路由器的index.js中,我设置了一个条件,将用户重定向到/login,但它不起作用。它确实将url更改为/login,我可以看到布局组件已加载,但登录组件未加载 如果我只是删除条件,我可以看到带有Route组件的Login组件 我尝试了很多不同的方法,但我找不到一个合适的方法来处理这个问题。希望你们能帮助我。顺便说一句,这是为了学习,所以我可能有业余代码 R

如果用户尚未登录,我将尝试重定向该用户。我使用
isLoggedIn
状态将其存储在
redux
状态,并将其设置为false,除非用户登录

路由器
index.js
中,我设置了一个条件,将用户重定向到
/login
,但它不起作用。它确实将url更改为
/login
,我可以看到
布局
组件已加载,但
登录
组件未加载

如果我只是删除条件,我可以看到带有
Route
组件的
Login
组件

我尝试了很多不同的方法,但我找不到一个合适的方法来处理这个问题。希望你们能帮助我。顺便说一句,这是为了学习,所以我可能有业余代码

Routes/index.js

class Routes extends React.Component {
    constructor(props, history) {
        super(props);
        this.store = this.props.store;
    }

    render() {
        return (
            <Switch>
                {this.store.isLoggedIn ?
                    <Switch>
                        <Route exact path="/" render={
                            (props) => <Home {...props} store={this.store} />
                        } />
                        <Route path="/quality" render={
                            (props) => <h1>Quality Track</h1>
                        } />
                        <Route path="/login" render={
                            (props) => <Login {...props} store={this.store} />
                        } />
                        <Route render={
                            (props) => <Login {...props} store={this.store} />
                        } />
                    </Switch>
                    :
                    <Redirect to="/login" />
                }
            </Switch>
        );
    }
}
编辑

当我更改Routes/index.js的最后一部分时,它成功了。这样用可以吗

            <div>
                <Redirect to="/login" />
                <Route path="/login" render={
                    (props) => <Login {...props} store={this.store} />
                } />
            </div>

} />

isLoggedIn
真时,第一个
开关
块包含可用的路由。其他情况下,第二个街区的路线可用。如果
isLoggedIn
false
任何URL都将重定向到
/login

{this.store.isLoggedIn ?
    <Switch>
        <Route exact path="/" render={
            (props) => <Home {...props} store={this.store} />
        } />
        <Route path="/quality" render={
            (props) => <h1>Quality Track</h1>
        } />
    </Switch>
    :
    <Switch>
        <Route path="/login" render={
            (props) => <Login {...props} store={this.store} />
        } />
        <Redirect to="/login" />
    </Switch>
}
{this.store.isLoggedIn?
} />
质量跟踪
} />
:
} />
}
{this.store.isLoggedIn ?
    <Switch>
        <Route exact path="/" render={
            (props) => <Home {...props} store={this.store} />
        } />
        <Route path="/quality" render={
            (props) => <h1>Quality Track</h1>
        } />
    </Switch>
    :
    <Switch>
        <Route path="/login" render={
            (props) => <Login {...props} store={this.store} />
        } />
        <Redirect to="/login" />
    </Switch>
}