useEffect未设置反应挂钩

时间:2020-08-29 21:55:21

标签: reactjs react-hooks use-effect

我有一个如下所示的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)时,返回的是null。好像从未调用过setPageColl。我知道数据是在getColls中返回的,因为可以在其中进行控制台。将其记录在其中。

1 个答案:

答案 0 :(得分:0)

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

let input = "some sample string".to_string();

let mut threads = vec![];

for chunk in input.chars().collect::<Vec<char>>().chunks(2) {
    let mut owned_array = ['\0'; 2];
    owned_array.copy_from_slice(chunk);
    threads.push(thread::spawn({
        move || -> () {
            println!("{:?}", owned_array);
        }
    }))
}

您可以像上面一样检查