如何在对象上设置 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]);
我正在尝试使用 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]);