提问者:小点点

对象的值在React状态下不会立即更新,有人可以解决此问题吗?[副本]


从“React”导入React,{useffect,useState};从“@fortawesome/free solid svg icons”导入{faShoppingBasket、faPlusSquare、faLeaf、faMinusSquare、faTrash}”;从“@fortawesome/react fontawesome”导入{FontAwesomeIcon}”;“进口”/横幅css';

Const Banner = () =

常数addToCart=(珠三角)=

  console.log(prd);
 const exist =  cart.find(product=> product.Name===prd && ++product.Num)
 if(!exist){
  const cartItem={
     Name:prd,
     Num:1
  }
  const newCart = [...cart,cartItem]
  setCart(newCart);
  console.log({cart});
 }

}返回(

     <div className='cart'>
     <div style={{display:'inline'}}><h3 style={{display:'inline'}}><FontAwesomeIcon icon={faShoppingBasket} size = '2x'/>Basket</h3> 
     <FontAwesomeIcon icon={faTrash} size = '2x'/>
     </div>
      
     {cart.map(prd=> <div className='item'><h3><FontAwesomeIcon icon={faMinusSquare} color='grey'/> {prd.Num}{prd.Name} </h3></div>)}
     </div>
     </div>
  </div>

); };

导出默认横幅;


共1个答案

匿名用户

状态更改是异步的,因此,如果您要将。登录下一行,它不会显示更新的结果。放在控制台上。在addToCart函数外部登录,当状态更新时,您将看到结果。