【发布时间】:2018-10-15 12:35:34
【问题描述】:
我使用 mobx Provider 提供商店,通过包装 Router
<Provider {...stores}>
<BrowserRouter >
<App />
</BrowserRouter>
</Provider>
在App 中,我有两个组件,Header 和 Main。
Header 包含 Link 到路由,Main 包含路由 Switch:
<div className="main">
<Route exact path='/' component={Home} />
<Route exact path='/login' component={Login} />
{/* <UnvalidatedUserRoute exact path='/login' store={this.props.User} component={Login} /> */}
<ValidatedUserRoute exact path='/todos' store={this.props.User} component={UserTodos} />
</div>
ValidatedUserRoute 只是一个确保用户通过身份验证的函数,如果没有,则重定向到主页。
const ValidatedUserRoute = ({component: Component}, store, ...rest) => (
<Route
{...rest}
render={props =>
store.validated ? (
<Component {...props} />) : (
<Redirect to={{
pathname: "/"
}}
/>
)
} />
);
export default ValidatedUserRoute
问题
当我点击链接时,我的 URL 确实发生了变化,但组件没有呈现,就像页面在加载网页时卡在最初加载的组件上一样。 p>
<Link to="/">Home</Link>
<Link to='/login'>Log In</Link>
【问题讨论】:
标签: javascript reactjs react-router