useEffect未设置反应挂钩

问题描述

我有一个如下所示的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中返回的,因为可以在其中进行控制台。将其记录在其中。

解决方法

在调用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);
        }
    }))
}

您可以像上面一样检查

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...