React Native数组状态未同步

14 浏览
0 Comments

React Native数组状态未同步

大家好,我在使用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 Comments

React Native中数组状态不同步的问题可能是由于useState的异步性导致的。因此,在使用setLike更新状态后,使用console.log打印的值不会显示更新后的值。为了检查值,需要在useEffect中打印值。

useEffect(() => {
    console.log('liked', liked);
}, [liked]);

在useEffect中还可以执行其他操作,因为它只会在liked的值发生变化后被调用。

感谢,我的问题已解决。

如果您能给出赞同的答案,将有助于帮助其他遇到相同问题的开发人员。

0