如何解决useEffect有问题吗?
const [query,setQuery] = useState([])
React.useEffect (() => {
fetch(url)
.then((res) => res.json())
.then((data) => {
setQuery(data)
console.log(query);
handleChange();
})
})
我有2个问题:
- 当我console.log(query)时为空。但是console.log(data)显示正确的数组,怎么办?
- handlechange()在提取完成之前得到执行,为什么?
谢谢!
解决方法
您可能不清楚useState
的工作方式。在这里检查:https://reactjs.org/docs/hooks-state.html
我有2个问题:
- 当我console.log(query)时为空。但是console.log(data)显示正确的数组,怎么办?
状态查询将在调用组件(重新渲染)后更新。因此,这里的控制台会变旧
query
。
- handlechange()在提取完成之前得到执行,为什么?
我认为
handleChange
将在提取完成后执行。但是您的情况可能是您使用un updated query
来使用。 您可以使用useEffect
来触发handleChange
,这可以确保query
已经更新之后。示例:
React.useEffect(() => handleChange(),[query]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。