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

React.js+TypeScript项目中如何展示API调用返回的结果?

React + TypeScript 项目展示API返回结果实现方案

实现步骤

  • 第一步:新增状态存储API返回数据,同时定义TS类型保证类型安全
    在组件内部先定义返回数据的接口,再声明状态:
// 定义API返回数据的TS类型
interface ApiResponse {
  message: string; // 可根据实际业务调整类型,比如number、boolean等
  validity: boolean; // 可根据实际业务调整类型
}

// 组件内部新增状态
const [apiResult, setApiResult] = useState<ApiResponse | null>(null);
  • 第二步:修改upload回调逻辑,请求成功后将返回数据存入状态
    修改你提供的第一部分代码,在请求成功后调用setApiResult存数据:
const upload = React.useCallback(async () => {
  try {
    const response = await mymethod(
      user,
      pass,
      onUpload
    );
    setSuccess(true);
    setUploading(false);
    // 新增:将返回的data存入状态
    setApiResult(response.data);
    return { body: response.data};    
  }              
}, [
  pass,
  user,       
]      
);
  • 第三步:在指定位置渲染返回结果
    修改第二部分代码的对应位置,直接读取状态值渲染即可,用可选链避免空值报错:
return (
  <AuthLayout showInfo={true}>
    <div className={classes.root}>                
        <Container>
          <Box
            display="flex"
            flexDirection="column"
            alignItems="center"                    
          >
            {uploading ? (
              <>
                <BorderLinearProgress
                  variant="determinate"
                  value={progress}
                />
              
              </>
            ) : success ? (
              <>
                <CheckCircleOutline
                  className={classes.successIcon}
                  fontSize="inherit"
                />        
                <div>
                  {/* 此处展示API返回结果 */}
                  <p>返回消息:{apiResult?.message}</p>
                  <p>有效性:{apiResult?.validity ? '有效' : '无效'}</p>
                  {/* 如果需要直接展示完整JSON结构可以用以下写法 */}
                  <pre>{JSON.stringify(apiResult, null, 2)}</pre>
                </div>                        
  
              </>
            ) : (
              <>                         
              
              </>
            )}
          </Box>
        </Container>
      </Box>
    </div>
  </AuthLayout>
);  

补充说明

如果需要在重置上传状态时清空历史返回结果,可以在上传开始、或者上传失败的逻辑里调用setApiResult(null)即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:09:02