我有一个React视图组件,看起来与下面的代码大致相似。我遇到的问题是嵌套的/:handle/saved
路由与相应的组件不匹配,因此,我被重定向到了NotFound页面。
我在应用程序的其他页面中嵌套了可以正常工作的路由,那么我在这里缺少什么?
下面是与页面组件相对应的代码。
import React, { Component } from 'react';
import { func, object } from 'prop-types';
import { NavLink, Route, Switch } from 'react-router-dom';
import { Grid, Icon } from 'semantic-ui-react';
function ProfilePage() {
return (
<Grid>
<Grid.Row className={row}>
<Grid.Column className={column}>
<NavLink
style={{ margin: '0 2rem 0 0' }}
className={link}
activeStyle={{ borderTop: '2px solid #333333' }}
to='/johndoe'
>
<Icon className={icon} name='grid layout' size='small' /> Posts
</NavLink>
<NavLink
style={{ margin: '0 0 0 2rem' }}
className={link}
activeStyle={{ borderTop: '2px solid #333333' }}
to='/johndoe/saved'
>
<Icon className={icon} name='bookmark outline' size='small' />{' '}
Saved
</NavLink>
</Grid.Column>
</Grid.Row>
<Grid.Row className={row}>
<Grid.Column className={column}>
<Switch>
<Route
exact
path='/:handle'
component={() => <div>I am Groot</div>}
/>
<Route
path='/:handle/saved'
component={() => <div>I am Groot: Saved</div>}
/>
</Switch>
</Grid.Column>
</Grid.Row>
</Grid>
);
}
export default ProfilePage;
答案 0 :(得分:0)
尝试在/:handle/saved
之前放置/:handle
路线
但这也可能有错字??也许应该用{{1}之前的/:handle/saved
代替/:handle/:saved
还尝试使用:
将add saved
添加到路由
请检查您的控制台,是否有任何错误?
您可以尝试在组件周围添加exact
,这是我添加的唯一内容,并且可以正常工作。