如何在对象上设置 useState 数据



我正在尝试使用 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)}
   />
 )
}

在控制台中.log我只得到初始状态,

我认为问题是因为每当您调用该函数时,您都不会传递具有正确信息的对象作为参数。 它正在尝试访问占位符上的属性,因此在调用时必须传递正确的信息,否则它将只是未定义。也不要认为您需要键周围的方括号。

我想

通了,仅供将来参考,

我不得不使用如下所示的useEffects。

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

相关内容

  • 没有找到相关文章

最新更新