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

React项目PC端正常渲染API数据移动端无法加载问题

问题诊断

你的map遍历渲染列表的写法不存在语法错误,移动端无法加载API数据和React适配无关,核心原因是API请求地址配置错误:
你写死的请求地址http://127.0.0.1:8000/是设备本地回环地址:

  • PC/笔记本调试时,前后端服务都运行在同一台设备上,127.0.0.1指向的就是运行后端服务的电脑,因此请求可以正常返回数据
  • 用移动端访问时,127.0.0.1指向的是手机设备自身,后端服务并没有运行在手机上,请求根本没有发送到你的后端服务,自然拿不到返回数据。静态内容由前端开发服务直接返回,所以不受影响可以正常展示。
修复步骤

按以下顺序调整即可解决问题:

  • 替换请求地址:把代码里的127.0.0.1替换为运行后端服务的电脑在当前局域网下的实际IPv4地址。Windows设备可在命令行执行ipconfig查看当前联网网卡的IPv4地址,mac/Linux设备可在终端执行ifconfig或ip a查看对应地址,通常格式为192.168.x.x,替换后请求地址形如http://192.168.3.15:8000/
  • 确认网络连通:测试用的手机需要和运行后端服务的电脑连接同一个WiFi/局域网,跨网段无法直接访问内网服务
  • 修改后端监听配置:后端服务启动时不能只绑定127.0.0.1地址,需要绑定0.0.0.0允许局域网内其他设备访问。从你用的8000端口判断大概率是Django服务,启动命令需要改为python manage.py runserver 0.0.0.0:8000,否则默认会拒绝来自其他设备的请求
  • 补充错误捕获:当前fetch逻辑没有异常处理,请求失败时没有任何提示不利于排查,建议补充try/catch逻辑,参考写法:
async function fetch_post(link) {
  try {
    const res = await fetch(link)
    if (!res.ok) throw new Error(`接口返回异常,状态码:${res.status}`)
    const data = await res.json()
    setPosts([...data]);
  } catch (err) {
    console.error('API请求失败:', err)
    // 可在此处设置错误状态、展示错误提示
  }
}
  • 优化配置:不要在代码里硬编码API地址,可区分开发/生产环境做不同配置,本地开发用局域网地址,上线部署时替换为正式服务域名,避免反复修改代码。

内容的提问来源于stack exchange,提问作者Joseph Thomas Ehigie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:27:21