如何解决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);
}
}))
}
您可以像上面一样检查
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。