有几种可能的原因可以解释为什么会出现 first 打印了但是 second 没有打印的情况:

  1. 请求 /api/discussions/${discussion.id}/posts?skip=${skip}&limit=${limit} 返回的结果没有触发 res.ok,这意味着请求失败了。这可能是由于网络问题或服务器错误引起的。你可以通过查看网络请求的返回状态码来确认是否成功。

  2. 请求 /api/discussions/${discussion.id}/posts?skip=${skip}&limit=${limit} 返回的结果中没有有效的 json.datajson.data.length 为0,这意味着没有新的帖子需要加载。在这种情况下,setNewPostssetDataList 的操作将被跳过,因此 second 不会被打印。

  3. 请求 /api/discussions/${discussion.id}/posts?skip=${skip}&limit=${limit} 返回的结果中的数据与 newPosts 中的数据没有匹配项,这意味着没有新的帖子需要加载。在这种情况下,setNewPosts 的操作将被跳过,因此 second 不会被打印。

  4. setIsLoading(false)try 块之前被调用了,这可能是因为在 try 块中的异步操作发生异常时,finally 块中的代码先于 try 块中的代码执行。这将导致 isLoading 的状态在 try 块中被设置为 false,而不是在请求完成后被设置为 false。这样一来,second 将不会被打印。

通过检查以上情况,你可以确定为什么会出现 first 打印了但是 second 没有打印的情况,并进行相应的修复

ReactuseEffect = async = try setIsLoadingtrue; const res = await fetchapidiscussions$discussionidpostsskip=$skip&limit=$limit; if res

原文地址: https://www.cveoy.top/t/topic/iPKz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录