You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

父组件start状态变更时React自定义useData Hook未触发API请求

问题分析与修复

核心问题出在自定义Hook的参数传递方式不匹配:

你的useData Hook定义时,接收的是一个包含start属性的对象参数:

export default function useData({ start = 0 }) { ... }

但在父组件CryptoList中调用时,直接传递了start变量:

const { result, error, isError, isLoading, hasNextPage } = useData(start);

这会导致useData内部始终读取的是默认值0,完全没有接收到父组件传递的start更新,自然不会触发useEffect发起新请求。

修复步骤

只需要修改父组件中useData的调用方式,传入包含start属性的对象即可:

// 原代码
const { result, error, isError, isLoading, hasNextPage } = useData(start);

// 修改后
const { result, error, isError, isLoading, hasNextPage } = useData({ start });

验证逻辑

修改后,当父组件的start状态更新时,useData Hook的start参数会同步变化,触发useEffect的依赖更新,进而执行新的API请求,实现无限滚动加载的预期效果。

内容的提问来源于stack exchange,提问作者MnR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:13:24