如何在对象上设置 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]);