Javascript 如何在react的UseState钩子中使用数组以及如何动态更新它

Javascript 如何在react的UseState钩子中使用数组以及如何动态更新它,javascript,html,reactjs,use-state,Javascript,Html,Reactjs,Use State,我有这个功能组件 import React,{useState}来自“React”; 从“reactstrap”导入{Container,Row,Col}; 导入“./stylesheets/cart.css”; 常量车=({image})=> { 常量[cartList,addItem]=useState([]) 如果(图像!==未定义) { 返回( {image.name} {image.price} ); }这样做的解决方案很简单,但是Cart不是一个方法,而是一个react组件。如果我

我有这个功能组件

import React,{useState}来自“React”;
从“reactstrap”导入{Container,Row,Col};
导入“./stylesheets/cart.css”;
常量车=({image})=>
{
常量[cartList,addItem]=useState([])
如果(图像!==未定义)
{
返回(
{image.name}
{image.price}
);

}
这样做的解决方案很简单,但是
Cart
不是一个方法,而是一个react组件。如果我理解你的问题,你想在道具更新时将
图像
添加到本地状态。你可以使用
useffect
挂钩来处理这个问题

  • 在依赖项数组中使用
    useffect
    image
    来触发效果回调
  • 使用功能状态更新浅层复制现有的
    cartList
    数组,并将新图像附加到数组的末尾
  • 推车

    const Cart=({image})=>{
    const[cartList,addItem]=useState([]);
    useffect(()=>{
    图像和附加项(购物车=>[…购物车,图像])//
    
    const Cart = ({ image }) => {
      const [cartList, addItem] = useState([]);
    
      useEffect(() => {
        image && addItem(cart => [...cart, image]); // <-- functional state update
      }, [image]); // <-- image dependency
    
      ...
    };