Closed zcgzxg closed 2 years ago
目前框架未支持嵌套路由,在开发项目中发现如果设定了嵌套路由,则框架未能match到子路由
嵌套路由的fetch也可正常执行
5.6.4
可以尝试修改findRoute方法的执行逻辑,以解决此问题
function findRoute<T extends {path: string; children?:T[]}> (Routes: T[], path: string): T { // 递归查找路由,以匹配路由和子路由 const recurseFind = (route: T) => { if (matchPath(path, route) && matchPath(path, route).isExact) { return true } else if (route.children) { return route.children.some(subRoute => recurseFind({ ...subRoute, path: route.path + '/' + subRoute.path })) } } // 根据请求的path来匹配到对应的Component const route = Routes.find(recurseFind) return route }
react-router-config 的 matchRoutes 可以支持嵌套理由查询,不过 他不支持 相对路径,需要自己处理一下
详细描述你的问题
目前框架未支持嵌套路由,在开发项目中发现如果设定了嵌套路由,则框架未能match到子路由
期望的结果
嵌套路由的fetch也可正常执行
当前使用的版本
5.6.4
复现仓库地址
你本人对问题可能的原因判断(如果你能大概判断的话)
可以尝试修改findRoute方法的执行逻辑,以解决此问题