Ajax 即使数据已经显示在下拉列表中导致网站冻结,仍不断被调用
Ajax keeps on getting called even tho data is already displaying in dropdown resulting to website freezing
只是想就此问题的原因寻求帮助。
我能够在下拉列表中显示时区列表,但之后它继续调用 ajax 使我的网站冻结。
这是下拉菜单
这是 ajax
这是我打电话并设置时区的地方
这是 select
原因
您的 useEffect
将在每次渲染时调用,因为它没有任何依赖性。
你的组件被挂载 -> useEffect 被调用 -> 你进行 API 调用 -> 使用 API 响应设置状态 -> 触发重新渲染 -> 现在你的 useEffect 将再次获得打电话。
这个循环继续导致无限循环。
修复
将您的 useEffect 更改为
useEffect(() => { ... }, [])
将 []
添加为您的 useEffect 的第二个参数,以便它仅在组件首次安装时运行。
只是想就此问题的原因寻求帮助。 我能够在下拉列表中显示时区列表,但之后它继续调用 ajax 使我的网站冻结。
这是下拉菜单
原因
您的 useEffect
将在每次渲染时调用,因为它没有任何依赖性。
你的组件被挂载 -> useEffect 被调用 -> 你进行 API 调用 -> 使用 API 响应设置状态 -> 触发重新渲染 -> 现在你的 useEffect 将再次获得打电话。
这个循环继续导致无限循环。
修复
将您的 useEffect 更改为
useEffect(() => { ... }, [])
将 []
添加为您的 useEffect 的第二个参数,以便它仅在组件首次安装时运行。