【发布时间】:2020-08-31 18:56:35
【问题描述】:
我正在尝试在我的应用中设置一些嵌套路由,但由于某种原因,我无法让它打开我的嵌套页面。
在 index.js 中
<Router>
<Switch>
<Route exact path="/" component={App}/>
<Route path="/admin" component={AdminApp}/>
<Route component={() => { return <div>Page not found</div>}}/>
</Switch>
</Router>
在 AdminApp.jsx 中:
import ViewUser from "./ViewUser";
export default function AdminApp({ match }) {
const [users, setUsers] = useState([]);
useEffect(() => {...axios to get users from db and setUsers()...}, [])
return (
<>
<div>User</div>
<Link to={`${match.url}/users/view/${user.Name}`>View</Link>
<Switch>
<Route path={`${match.path}/users/view/:username`} component={ViewUser}/>
</Switch>
</>)
}
ViewUser 组件是AdminApp 组件的子组件。
每当我点击 View 链接时,它都会将我的 url 更改为 http://localhost:3001/admin/users/view/theusernameoftheselecteduser ,因此 url 本身(至少在浏览器栏中)是正确的,但它呈现 Page not found 路由,它从不呈现 ViewUser 组件。我里面有一个console.log,它根本不会被触发。
编辑:这个问题的公认答案是我正在尝试做的Nested routes with react router v4 / v5,但由于某种原因我无法让它工作。
https://reactrouter.com/web/example/nesting react-router 的相同示例,我无法让它工作
【问题讨论】:
标签: reactjs react-router