【发布时间】:2019-01-14 21:25:02
【问题描述】:
我正在建立一个新的 React JS 项目,我想在人们未连接时重定向 authPage 上的人们。
我有一个这样的 App 容器:
class App extends Component {
render() {
return (
<div className={'app-wrapper'}>
<Helmet
titleTemplate="FFMKR"
defaultTitle="React.js Boilerplate"
>
<meta name="description" content="A React.js Boilerplate application" />
</Helmet>
<Header />
<div className={'container-fluid'}>
<div className={'row'}>
<SideBar />
<main role="main" className={'col-md-9 ml-sm-auto col-lg-10 px-4'}>
<Switch>
<Route path="/login" component={Login} />
<PrivateRoute exact path="/" component={HomePage} />
<Route path="" component={NotFoundPage} />
</Switch>
</main>
</div>
</div>
</div>
);
}
}
我的 PrivateRoute 就是这样:
const PrivateRoute = (props) => {
const { component: Component, isLogged, ...rest } = props;
console.log('on est dans la route lol', isLogged, {...rest});
return (
<Route
{...rest}
render={propsRender =>
isLogged ? (
<Component {...propsRender} />
) : (
<Redirect
to={{
pathname: "/login",
state: { from: propsRender.location }
}}
/>
)
}
/>
);
};
PrivateRoute.propTypes = {
isLogged: PropTypes.bool,
};
export default PrivateRoute;
我的变量 isLogged 已经是假的。当我启动我的应用程序时,我继续使用 url "/" 并且我在 url"/login" 上重定向但我的登录组件没有显示:
https://image.noelshack.com/fichiers/2019/03/1/1547456719-capture-d-ecran-de-2019-01-14-10-04-38.png
当我在 url "/login" 上重新加载时,我的登录组件工作正常:
https://image.noelshack.com/fichiers/2019/03/1/1547456719-capture-d-ecran-de-2019-01-14-10-04-58.png
为什么我启动我的应用程序,我的登录组件没有出现?
【问题讨论】:
标签: reactjs react-router react-router-v4