useEffect 没有设置反应挂钩

useEffect not setting react hooks

我有一个 useEffect 函数,看起来像这样。

    useEffect(() => {
        getColls()
        console.log(pageColl)
    }, [])

getColls() 函数设置 pageColl 变量。

//getColls()
    const getColls = () => {
        Service.getCollections()
        .then(data => 
            setPageColl(data.collections.find(coll => coll._id === userId))
        )
    }
//states
const [pageColl, setPageColl] = useState(null);

pageColl 应该设置为一个对象,但由于某些原因,当我尝试 console.log(pageColl) 时,我返回了一个空值。就好像从未调用过 setPageColl 一样。我知道数据是在 getColls 中返回的,我可以在那里 console.log 它。

您无法在调用 getColls() 方法后立即检查“pageColl”状态,因为 api 调用是异步的。

 useEffect(() => {
    console.log(pageColl)
}, [pageColl])

你可以像上面那样检查