你好 stackoverflow 我有一个关于 React Native 的问题,我正在开发我的功能,它允许我喜欢一个帖子,但是当我将我的 id 推送到我的数组时,我的控制台是空的。 要查看我的表格,我必须再次单击另一个帖子,以便我的第一个 ID 显示在我的表格中。
这是我的代码
const [liked, setLiked] = useState([])
const arr = []
const Like = (item) => {
if (liked.indexOf(item) === -1) {
const newArr = [...liked]
newArr.push(item)
setLiked(newArr)
console.log(liked)
console.log("ADD ID")
}
}
const removelike = (item) => {
if (liked.indexOf(item) >= 0) {
console.log(liked.indexOf(item))
const DeleteID = liked
DeleteID.splice(item, 1)
setLiked(DeleteID)
console.log("Delete ID")
}
}
答案 0 :(得分:0)
使用的 useState 实际上是异步的。所以在 setLike 之后喜欢的控制台日志不会显示更新的值。要检查值,您需要在 useEffect 中控制该值
useEffect(()=> {
console.log('liked',liked);
}, [liked])
你可以在 useEffect 中执行额外的操作,因为它只会在 Liked 的值改变后被调用