1 回答

TA貢獻1799條經驗 獲得超8個贊
問題正在發生,因為除非您在呈現的組件本身中指定嵌套路由,否則您需要為其提供整個路徑名。
解決方案是傳遞前綴以附加在路徑名之前。我們還需要一個尾隨/
const generateRoutes = (routes = [], prefix = "") =>
Object.values(routes)
.map(route => {
console.log(prefix);
if (route.redirect) {
return [];
} else if (route.children) {
return (
<Route key={route.path} path={`${prefix}/${route.path}`}>
<Switch>
{generateRoutes(route.children, prefix + "/" + route.path)}
</Switch>
</Route>
);
}
return (
<Route
path={`${prefix}/${route.path}`}
key={route.path}
render={props => <route.component {...props} />}
/>
);
})
.reduce((navigation, route) => navigation.concat(route), []);
添加回答
舉報