reactjs组件都在显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reactjs组件都在显示相关的知识,希望对你有一定的参考价值。
登录后我只想要管理员组件,但我的登录组件仍然显示。
boot-client.tsx:
import * as RoutesModule from './routes';
function renderApp() {
ReactDOM.render(
<AppContainer>
<Provider store={store}>
<ConnectedRouter history={history} children={routes} />
</Provider>
</AppContainer>
,
document.getElementById('react-app')
);
}
routes.tsx:
export const routes = <div>
<PrivateRoute component={FetchData} />
<Route path='/' component={Logon} />
<Route path='/administrate' component={Administrate } />
</div>
;
我的组件'PrivateRoute'如下所示,登录后需要重定向到administrate组件:
export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
localStorage.getItem('user')
? <Redirect to={{ pathname: '/administrate', state: { from: props.location } }}/>
: <Redirect to={{ pathname: '/login', state: { from: props.location } }} />
)} />
)
有人能指出我正确的方向吗?我在俯瞰什么?太感谢了。
答案
将exact
添加到你的/
路线,否则/
和/administrate
将匹配。
另一答案
那是因为url匹配两个路径。另外我会用<Switch>
围绕它,迫使它只显示其中一个。这很适合添加默认路径,否则将始终显示默认路径
以上是关于reactjs组件都在显示的主要内容,如果未能解决你的问题,请参考以下文章