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

React中使用GET方法请求Mongo后端数据报users.map is not a function如何解决

问题原因

  • 你直接将后端返回的完整响应对象赋值给了users状态,而需要的用户数组实际嵌套在响应对象的data.users字段中,此时users是对象类型不是数组,自然没有map方法,就会报users.map is not a function错误。
  • 用jsonplaceholder测试正常是因为该接口直接返回数组结构,和你自己后端返回的嵌套结构不一致。
  • 另外后端返回的用户唯一标识是_id不是id,渲染时key取值需要对应修改;且setUsers是异步更新,调用后立刻打印users拿到的还是更新前的旧值,不要被日志输出误导。

修正后的代码

import React, { useEffect, useState } from "react";

const Get = () => {
  const [users, setUsers] = useState([]);
  const getAllUser = async () => {
    const response = await fetch("/get");
    const resData = await response.json();
    // 仅提取嵌套的用户数组赋值
    setUsers(resData.data.users);
  };

  useEffect(() => {
    getAllUser();
  }, []);

  return (
    <>
      {users.map((ce) => (
        // 用后端返回的_id作为唯一key
        <div key={ce._id}>
          <h2>{ce.name}</h2>
          <p>{ce.email}</p>
        </div>
      ))}
    </>
  );
};

export default Get;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:36:03