reactjs - useEffect 未设置反应挂钩
问题描述
我有一个看起来像这样的 useEffect 函数。
useEffect(() => {
getColls()
console.log(pageColl)
}, [])
getCols() 函数设置 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 从未被调用过。我知道数据是在 getCols 中返回的,因为我可以在那里 console.log 它。
解决方案
您不能在调用 getCols() 方法后立即检查“pageColl”状态,因为 api 调用是异步的。
useEffect(() => {
console.log(pageColl)
}, [pageColl])
你可以像上面一样检查
推荐阅读
- angular - 更新 Angular 找不到 angular-devkit
- django - 如何为非托管模型生成内置模型权限?
- python - Python:检查两个变量是否具有相同的内容?两个变量都是未知的,可以是 DataFrames、列表列表等
- c++ - C++ std::filesystem::copy 因“无法到达网络位置”而失败
- python - 如何使用 python 使用存储在 Windows 证书管理器中的证书
- javascript - 正则表达式删除所有 unix 时间戳
- python - 从没有唯一类的页面中抓取某些内容
- regex - 在具有 2 个选项的正则表达式中具有不同的字符
- javascript - 根据类别 JAVASCRIPT 对多个属性进行分组。适用于一个但不是所有属性
- sql - 填补缺失的月份