错误:对象作为 React 子对象无效找到:带有键 {map、forEach、count、toArray、only} 的对象如果您打算渲染一个集合

如何解决错误:对象作为 React 子对象无效找到:带有键 {map、forEach、count、toArray、only} 的对象如果您打算渲染一个集合

我正在尝试克隆我正在关注的 amazone 网站(youtube 上的 ceLever 程序员) 所以我想用 React context api 创建 amazon 篮子,这个错误发生“错误:对象作为 React 子对象无效(发现:对象带有键 {map,forEach,count,toArray,only}) . 如果您打算渲染一组子项,请改用数组。"

这是我的代码

index.js :

import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import * as serviceWorker from "./serviceWorker";
import { StateProvider } from "./StateProvider";
import reducer,{ initialState } from "./reducer";

ReactDOM.render(
  <React.StrictMode>
    <StateProvider initialState={initialState} reducer={reducer}>
      <App />
    </StateProvider>
  </React.StrictMode>,document.getElementById("root")
);

// If you want to start measuring performance in your app,pass a function
// to log results (for example: reportWebVitals(console.log))
serviceWorker.unregister();

stateProvider.js:

import React,{ createContext,useContext,useReducer } from "react";
import { Children } from "react";

export const StateContext = createContext();

export const StateProvider = ({ reducer,initialState,children }) => (
  <StateContext.Provider value={useReducer(reducer,initialState)}>
    {Children}
  </StateContext.Provider>
);

export const useStateValue = () => useContext(StateContext);

reducer.js:

export const initialState = {
  basket: [],};

function reducer(state,action) {
  switch (action.type) {
    case "ADD_TO__BASKET":
      break;
    case "REMOVE_FROM_BASKET":
      break;
    default:
      return state;
  }
}

export default reducer;

header.js:

import React from "react";
import "./Header.css";
import { Link } from "react-router-dom";
import SearchIcon from "@material-ui/icons/Search";
import { grey } from "@material-ui/core/colors";
import ShoppingBasketIcon from "@material-ui/icons/ShoppingBasket";
import { useStateValue } from "./StateProvider";

function Header() {
  const [{ basket }] = useStateValue();

  return (
    <nav className="header">
      {/* logo */}
      <Link to="/">
        <img
          className="header__logo"
          src="https://www.mabaya.com/wp-content/uploads/2019/10/amazon_PNG25.png"
          alt=""
        />
      </Link>

      {/* SearchBox */}
      <div className="header__search">
        <input type="text" className="header__SearchBox" />
        <SearchIcon className="header__SearchIcon" />
      </div>
      {/* Links */}
      <div className="header__nav">
        {/* 1link */}
        <Link to="/login" className="header__link">
          <div className="header__option">
            <span className="header__optionsecondary">Hello,</span>
            <span>Sign in</span>
          </div>
        </Link>
        {/* 2link */}
        <Link to="/check" className="header__link">
          <div className="header__option">
            <span className="header__optionsecondary">returns </span>
            <span>& orders</span>
          </div>
        </Link>
        {/* 3link */}
        <Link to="/" className="header__link">
          <div className="header__option">
            <span className="header__optionsecondary">Your</span>
            <span>Prime</span>
          </div>
        </Link>
        {/* basket link */}
        <Link to="/check" className="header__link">
          <div className="header__optionbasket">
            {/* shopping Basket Icon  */}
            <ShoppingBasketIcon style={{ color: grey[50] }} />
            {/* Number of items in the basket  */}
            <span className="header__optionbaskettext"> {basket.length}</span>
          </div>
        </Link>
      </div>
      {/* panier */}
    </nav>
  );
}

export default Header;

App.js:

import "./App.css";
import { browserRouter as Router,Switch,Route } from "react-router-dom";
import Header from "./Header";
import Home from "./Home";
import Login from "./Login";

function App() {
  return (
    <Router>
      <div className="app">
        <Switch>
          <Route path="/login">
            <Header />
            <Login />
          </Route>

          <Route path="/check">
            <Header />

            <h1>check guys</h1>
          </Route>

          <Route path="/">
            <Header />
            <Home />
          </Route>
        </Switch>
      </div>
    </Router>
  );
}

export default App;

预先感谢您的回答。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?