debugging my中的元素< li>< /li>既不会显示在浏览器上,也不会显示在inspect的元素部分中,只有我的< ol>标签显示

rsaldnfx  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(99)

在我的元素
不会显示在浏览器上,也不会显示在inspect的元素部分中。当我检查页面时,只有我的标签显示在浏览器中。此外,total的值也没有显示。但是,birdInCart中的项目确实存在,因为当我console.log时,我可以看到数组中的项目。为什么map函数的结果没有呈现到页面上?
下面是我的代码:
Cart.js文件:

export default function Cart({ birdInCart, total }) {
    return (
        <div className="cart">
            <h2>Shopping Cart</h2>
            <ol>
                {birdInCart?.map((bird)=> ( 
                    <li key={bird.id}>
                        <p>{bird.name}: {bird.amount}</p>
                    </li>
                ))}
            </ol>
            <h4>Cart Total: ${total}</h4>
        </div>
    )
}

App.Js文件:

import { useState } from "react";
import BirdCard from "./components/BirdCard";
import Cart from "./components/Cart";

function App() {
  const [birdInCart, setBirdInCart] = useState([]);
  const [total, setTotal] = useState(0);

  const addToCart = (bird) => {
    const birdCartItem = {
        id: Math.random(),
        name: bird.name,
        price: bird.amount,
        image: bird.image,
    };
    //setBirdInCart(birdInCart.push(birdCartItem)) - this is not going to work because the push method returns the new length of an array & not the update array. Instead I have to use the spread operator

    setBirdInCart([...birdInCart, birdCartItem]);
    setTotal(total + birdCartItem.amount);
    console.log("it works")
    console.log(birdInCart)
  }

  return (
    <>
      <header>
        <h1>Noni's Bird Sanctuary</h1>
      </header>
      <BirdCard addToCart={addToCart}/>
      <Cart addToCart={addToCart}/>
    </>
  )
}

export default App;

我试着添加一个返回,没有任何变化。我也console.log数组来检查它是否为空。数组不为空。

wsewodh2

wsewodh21#

欢迎使用stackOverflow,所以您应用了错误的三元运算符。如果你想遍历birdInCart数组,尝试如下操作:
编辑

{birdInCart?({birdInCart.map((bird)=> ( 
 <li key={bird.id}>
 <p>{bird.name}: {bird.amount}</p> </li> ))}):
 <p>there is nothing to show</p>}

还通过给定的代码将此添加到购物车组件 prop

<Cart addToCart={addToCart} birdInCart={birdInCart} total=total/>

并相应地使用这些作为 prop 。希望能帮上忙。

相关问题