reactjs - React useRouteMatch 不显示嵌套链接内容
问题描述
我在这里有一个演示
我有两个页面主页和信息
Info 有一个嵌套导航,单击该导航应在导航下方显示组件,但仍显示 Info 标题和信息链接。
Currentlt 它显示了正确的 url,但显示了一个空白屏幕。
我在这里做错了什么
import React from "react";
import { Link, Route, useRouteMatch, Switch } from "react-router-dom";
import InfoOne from "./InfoOne";
import InfoTwo from "./InfoTwo";
const Info: React.FC = () => {
const { path, url } = useRouteMatch();
return (
<div>
<h2>Info</h2>
<ul>
<li>
<Link to={`${url}/linkone`}>Info Link One</Link>
</li>
<li>
<Link to={`${url}/linktwo`}>Info Link Two</Link>
</li>
</ul>
<div>
<Switch>
<Route path={`${path}/linkone`}>
<InfoOne />
</Route>
<Route path={`${path}/linktwo`}>
<InfoTwo />
</Route>
</Switch>
</div>
</div>
);
};
export default Info;
解决方案
问题出在你的Main.tsx
.
你不需要exact
这里:
<Route path="/info" component={Info} />
通过添加exact
它确实在每条路线上安装了自己的组件。你只需要删除它。这是工作代码:https ://stackblitz.com/edit/react-ts-r7kqzj?file=Main.tsx
推荐阅读
- session - SQL Server 总是每小时运行一次查询
- gradle - ShadowJar:没有为属性“mainClassName”指定值
- ios - 使用 SKCloudServiceController API 检查 Apple Music 功能时出错
- android - 从子模块添加依赖项
- php - 生成后上传csv不上传到服务器
- python - 如何在将所有模板和静态文件发送到客户端之前捕获它们
- c++ - 如何将枚举的十六进制值打印到C++中的字符串
- python - 从包含括号的文本(日志文件)中提取键值对
- java - 数据加载时间很长,RecyclerView中不显示数据
- sql - 每个用户的 SQL 最新日期 - 消除重复