Unhandled Runtime Error TypeError: subSector.map is not a function
Unhandled Runtime Error TypeError: subSector.map is not a function
我无法映射来自假 api 的 json 数据。它在返回多个数据时有效,但当数据是单个对象时会发生此错误。
这是我的代码:
{subSector
? subSector.map((sector) => (
// ^ ~ subSector.map is not a function
<MenuItem value={sector.id}>{sector.email}</MenuItem>
))
: "nodata"}
通过在 subSector
上使用 map
,您假设它是一个项目数组而不是单个项目。
您看到错误是因为 subSector
不是数组,因此 map
函数不可用。
而是直接访问 subSector
属性(假设 subSector
是单个项目):
{subSector ? (
<MenuItem value={subSector.id}>{subSector.email}</MenuItem>
)
: "nodata"}
或处理数组或单个项目的两种情况:
{Array.isArray(subSector)
? subSector.map((sector) => (
<MenuItem value={sector.id}>{sector.email}</MenuItem>
))
: subSector ? (
<MenuItem value={subSector.id}>{subSector.email}</MenuItem>
)
: "nodata"}
或者,正如 catgirlkelly 所说,确保你的假数据总是 returns 一个数组,即使是单个项目也是如此。
我无法映射来自假 api 的 json 数据。它在返回多个数据时有效,但当数据是单个对象时会发生此错误。
这是我的代码:
{subSector
? subSector.map((sector) => (
// ^ ~ subSector.map is not a function
<MenuItem value={sector.id}>{sector.email}</MenuItem>
))
: "nodata"}
通过在 subSector
上使用 map
,您假设它是一个项目数组而不是单个项目。
您看到错误是因为 subSector
不是数组,因此 map
函数不可用。
而是直接访问 subSector
属性(假设 subSector
是单个项目):
{subSector ? (
<MenuItem value={subSector.id}>{subSector.email}</MenuItem>
)
: "nodata"}
或处理数组或单个项目的两种情况:
{Array.isArray(subSector)
? subSector.map((sector) => (
<MenuItem value={sector.id}>{sector.email}</MenuItem>
))
: subSector ? (
<MenuItem value={subSector.id}>{subSector.email}</MenuItem>
)
: "nodata"}
或者,正如 catgirlkelly 所说,确保你的假数据总是 returns 一个数组,即使是单个项目也是如此。