簡體   English   中英

如何在對象上設置useState數據

[英]how to set useState data on an object

我正在嘗試使用useState設置一個對象,但是我只獲得初始值,任何人都可以看到我做錯了,有問題的對象是setWishlist,

const CenterModal = props => {
  const [modalData, setModalData] = useState({
    color: 'red',
    title: '',
    description: ''
  });

const onSubmit = e => {
    e.preventDefault();
    props.onHide();
    const wishlistData = {
      color: modalData.color,
      title: modalData.title,
      description: modalData.description,
    };

    //Pass the data to Wishlist component
    props.wishlistdata(wishlistData);
    console.log('wishlistData: ', wishlistData);
  };
 }

const Wishlist = props => {

    const [wishList, setWishList] = useState({
    color: 'red',
    title: '',
    description: ''
  });

  const onWishListDataReceived = wishListData => {
    setWishList({
      color: wishListData.color
      title: wishListData.title,
      description: wishListData.description,
    });
    console.log('wish list data is: ', wishList);
  };

return(    
   <CenterModal
      title="EDIT WISHLIST ITEM"
      show={modalShow}
      onHide={modalClose}
      wishlistdata={e => onWishListDataReceived(e)}
   />
 )
}

在console.log中我只得到初始狀態,

我認為問題在於,無論何時調用函數,都不會傳入具有正確信息的對象作為參數。 它試圖訪問占位符上的屬性,因此在調用時必須傳遞正確的信息,否則它將是未定義的。 也不要認為你需要鍵周圍的方括號。

我想通了,僅供將來參考,

我不得不使用如下的useEffects

useEffect(() => {
    console.log('wishlistdata is: ', wishList);
  }, [wishList]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM