reactjs - 是否有任何解决方案可以通信父 React 路由器和子 React 路由器?
问题描述
子应用的路由器不起作用。
我打算将 4 个独立的 react 应用程序组合成一个应用程序。所以我生成了一个 create-react-app(parent app) 并将 4 个 react 应用程序定位到父应用程序的 src 中。
父 src 中的 App.js 使用BrowserRouter
连接到子 CRA。
子 CRA 也在使用路由器移动到适当的 url。
父 src 中的 app.js。
function App() {
return (
<BrowserRouter>
<React.Fragment>
<Switch>
<Route exact path="/" component={ReactView}/>
<Route exact path="/app1" component={ChildApp1}/>
<Route exact path="/app2" component={ChildApp2}/>
<Route exact path="/app3" component={ChildApp3}/>
<Route exact path="/account" component={Account}/>
</Switch>
</React.Fragment>
</BrowserRouter>)}
ReactView 是 CRA 的默认视图元素。ChildApp1,2,3,账号导入好。
localhost:3000/
localhost:3000/app1
, app2
,app3
并且/account
正在工作。
ChildApp1、ChildApp2、ChildApp3 和 AccountBrowserRouter
各有。
localhost:3000/app1/path1
不工作..
没有错误消息并且根元素中没有元素。(空的)
解决方案
由于您在最顶层路线上有一个确切的道具,因此没有嵌套路线匹配。解决方案是仅使用 switch 和 order 路由,以便前缀路由路径在 order 中
function App() {
return (
<BrowserRouter>
<React.Fragment>
<Switch>
<Route path="/app1" component={ChildApp1}/>
<Route path="/app2" component={ChildApp2}/>
<Route path="/app3" component={ChildApp3}/>
<Route path="/account" component={Account}/>
<Route path="/" component={ReactView}/>
</Switch>
</React.Fragment>
</BrowserRouter>
)
}
推荐阅读
- scala - 如何在 Scala 3 中声明并将参数传递给隐式参数?
- python - “utf-8”编解码器无法解码位置 107 中的字节 0x92:无效的起始字节
- haskell - 如何编写一个计算一个单词的字母数量并将其打印为一对元音的函数?
- c# - 在 docker 镜像中找不到 CMake 没有 CSharp 编译器
- c# - 对象数组中的 NullReferenceException
- if-statement - check (char a) 语句有问题(使用 if 运算符)
- postgresql - 如何实现“类型是
postgresql 中的“rowid 索引表”概念,用于将表数据与新插入的数据进行比较 - vue.js - Vue I18n HTML 插值
- c# - C# 任务 - 聚合异常
- sql - 具有级联命名空间的 SQL Server Xml 查询