как установить данные useState для объекта - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь установить объект с помощью 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 У меня только начальное состояние,

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Я понял, просто для дальнейшего использования,

Я должен был использовать useEffects, как показано ниже

useEffect(() => {
    console.log('wishlistdata is: ', wishList);
  }, [wishList]);
0 голосов
/ 05 июня 2019

Я думаю, что проблема в том, что всякий раз, когда вы вызываете функцию, вы не передаете объект с правильной информацией в качестве аргумента.он пытается получить доступ к свойствам заполнителя, поэтому при вызове должна быть передана правильная информация, иначе она будет неопределенной.Также не думайте, что вам нужны квадратные скобки вокруг клавиш.

...