【发布时间】:2022-01-06 18:22:37
【问题描述】:
我正在尝试在我的 React 项目中使用自定义路由,但我不断收到警告:
Error: [NoNavbarLayoutRoute] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>
这是我的两种不同的布局:
const NoNavbarLayoutRoute = ({ component: Component, ...rest }) => {
return (
<Route {...rest} render={matchProps => (
<NoNavbarLayout>
<Component {...matchProps} />
</NoNavbarLayout>
)}
/>
);
};
const NavbarLayoutRoute = ({ component: Component, ...rest }) => {
return (
<Route {...rest} render={matchProps => (
<NavbarLayout>
<Component {...matchProps} />
</NavbarLayout>
)}
/>
);
};
这是其中一种布局的示例:
import React from "react";
const NoNavbarLayout = ({ children }) => (
<div className="login-layout">
<p>No navbar</p>
{children}
</div>
);
export default NoNavbarLayout;
这是我使用它们的地方:
class App extends Component {
render() {
return (
<div>
<BrowserRouter>
<Routes>
<NoNavbarLayoutRoute path="/bossHome" element={<BossHomePage />} />
<NavbarLayoutRoute path="/home" element={<Home />} />
</Routes>
</BrowserRouter>
</div>
);
}
}
据我了解,这些布局应该是 Route 组件,但一定是我做错了什么。任何帮助将不胜感激!
【问题讨论】:
标签: reactjs react-router react-router-dom