首页 > 解决方案 > 从 API 返回未定义的 JSON 数据映射

问题描述

您好,我正在尝试通过 API 中的数据进行映射,如下所示:

import React, { useEffect, useState } from "react"
import Layout from "../components/layout"
import { getAllActiveJobs } from "../../backend/controllers/apiHandler"

const ForAnsatte = () => {
  const [activeJobs, setActiveJobs] = useState([])
  const init = () => {
    getAllActiveJobs().then((data) => {
      setActiveJobs(data)
    })
  }
  useEffect(() => {
    init()
    return () => {}
  }, [])


  return (
    <Layout>
      {activeJobs.data
        ? activeJobs.data.map((item) => {
            return <div key={item.jobId}>{item.candidateId}</div>
          })
        : "Loading..."}
    </Layout>
  )
}

export default ForAnsatte

但后来我得到这个错误: TypeError: activeJobs.data.map is not a function

API 返回 JSON 对象,如下所示:

在此处输入图像描述

有人可以帮我指出我在这里做错了什么吗?

先感谢您!

标签: javascriptnode.jsreactjs

解决方案


从 api 返回的数据似乎是一个 JSON 对象,而 map() 仅适用于数组。

我建议使用 Object.keys(activeJobs.data).forEach() 遍历 JSON 对象


推荐阅读