繁体   English   中英

未捕获的错误:[ItemListContainer] 不是<Route>零件。 的所有子组件<Routes>必须是<Route>或者<React.Fragment>

[英]Uncaught Error: [ItemListContainer] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>

我正在用 React 编程,事实是我第一次用 React 编程。 在App.js中我定义了路由,我使用react-router-dom库,但是我得到标题的错误,代码如下,我做错了什么,你能给我解释一下,因为我带来了所有组件。

import React from 'react';
import './App.css';
import 'materialize-css/dist/css/materialize.css';
import NavBar from './components/NavBar';
import ItemListContainer from './components/ItemListContainer';
import MoreSell from './components/ItemListMoreSell';
import ItemDetailContainer from './components/ItemDetailContainer';
import Cart from './components/Cart';
import { BrowserRouter, Routes, Route } from 'react-router-dom';

function App() {
  return (
    <div className="App">
      <BrowserRouter>
        <NavBar />
        <MoreSell/>
        <Routes>
          <Route path="/" element={<ItemListContainer/>} />
          <Route path="/category/:categoryID" element={<ItemListContainer/>} />  
          <Route path="/detail/:productID" element={<ItemDetailContainer/>} /> 
          <Route path="/cart" element={<Cart/>} />
        <ItemListContainer/>
        </Routes>
      </BrowserRouter>
    </div>
  );
}

export default App;

谢谢

ItemListContainer 在 Cart 路由之后导致问题,因为在 Routes 中您只能定义路由

function App() {
  return (
    <div className="App">
      <BrowserRouter>
        <NavBar />
        <MoreSell/>
        <Routes>
          <Route path="/" element={<ItemListContainer/>} />
          <Route path="/category/:categoryID" element={<ItemListContainer/>} />  
          <Route path="/detail/:productID" element={<ItemDetailContainer/>} /> 
          <Route path="/cart" element={<Cart/>} />
        </Routes>
      </BrowserRouter>
    </div>
  );
}

export default App;

您将 ItemListContainer/> 作为 Routes> 中的子项。 要么删除这个组件,把它移到路由之外,要么在里面创建一个新路由。

<Routes>
          <Route path="/" element={<ItemListContainer/>} />
          <Route path="/category/:categoryID" element={<ItemListContainer/>} />  
          <Route path="/detail/:productID" element={<ItemDetailContainer/>} /> 
          <Route path="/cart" element={<Cart/>} />
          <ItemListContainer/> //<-------------------------This is the error
</Routes>

我认为您的错误消息中的答案是:

您需要从 <Routes> ... </Routes> 容器中删除 < ItemListContainer /> 并将其移动到另一个地方。 例如:

function App() {
  return (
    <div className="App">
      <BrowserRouter>
        <NavBar />
        <MoreSell/>
        <Routes>
          <Route path="/" element={<ItemListContainer/>} />
          <Route path="/category/:categoryID" element={<ItemListContainer/>} />  
          <Route path="/detail/:productID" element={<ItemDetailContainer/>} /> 
          <Route path="/cart" element={<Cart/>} />
        </Routes>
        <ItemListContainer/>
      </BrowserRouter>
    </div>
  );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 未捕获的错误:[RouteWrapper] 不是<Route>零件。 的所有子组件<Routes>必须是<Route>或者<React.Fragment> 未捕获的错误:[Elements] 不是<Route>零件。 的所有子组件<Routes>必须是<Route>或者<React.Fragment> 未捕获的错误:[Topbar] 不是<route>零件。 的所有子组件<routes>必须是<route>或者<react.fragment></react.fragment></route></routes></route> runtime.js:7 未捕获错误:[RequireAuth] 不是<route>成分。 的所有子组件<routes>必须是一个<route>或者<react.fragment></react.fragment></route></routes></route> 错误:[PrivateRoute] 不是<route>成分。 的所有子组件<routes>必须是一个<route>或者<react.fragment></react.fragment></route></routes></route> BrowserRouter 不是一个<Route>零件。 的所有子组件<Routes>必须是<Route>或者<React.Fragment> ReactJS:[首页]不是<route>成分。 的所有子组件<routes>必须是<route>或者<react.fragment></react.fragment></route></routes></route> 布局不是<route>成分。 的所有子组件<routes>必须是一个<route>或者<react.fragment> . 我应该如何克服这个错误?</react.fragment></route></routes></route> 部分不是<route>成分。 的所有子组件<routes>必须是一个<route></route></routes></route> ERROR 错误:路由“ViewPayments”的组件必须是 React 组件。 例如:
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM