映射函数不适用于useEffect-React Hooks中的API数据



下面的代码没有用任何项目填充UL。填充的唯一项目是";默认LI";我手动放进去的。控制台输出显示response.data中的数据。所有console.log调用都显示输出,所以一切似乎都在启动。可能真的很简单。感谢您的帮助。谢谢

import React, { useEffect, useState } from "react";
import axios from "axios";
export default function AssetTypes() {
const [data, setData] = useState({ items: [] });
useEffect(() => {
console.log("inside useEffect");
let url = `https://localhost:5001/api/AssetTypes?organizationId=999`;
console.log(url);
console.log("useEffect 1");
const fetchData = async () => {
console.log("fetchData 1");
const response = await axios.get(url);
console.log("fetchData 2");
console.log(JSON.stringify(response.data));
console.log("fetchData 3");
setData(response.data);
console.log("fetchData 4");
};
console.log("useEffect 2");
fetchData();
console.log("useEffect 3");
}, []);
return (
<>
<h1>Asset Types</h1>
<ul>
<li>Default LI</li>
{data &&
data.items &&
data.items.map((item) => (
<li key={item.assetTypeId}>
<span>
{item.assetTypeName} - {item.assetCategory}
</span>
</li>
))}
</ul>
</>
);
}

Stringify输出:

[{"资产类型ID;:2,组织ID;:0,资产类型名称:书籍,资产类别:书籍},{>资产类型Id;:4,组织ID:0,资源类型名称:电子书},{"资产类型Id":6,"组织ID":0,"资产类型名称":"杂志","资产类别":"期刊"},{"资源类型Id"8,"组织Id":0,{"资产类型ID":9,"组织ID":0,"资产类型名称":"百科全书","资产类别":"图书"}]

感谢Chris Farmer。以下是我所做的更改。不出所料,这是一件愚蠢的事情!
const [data, setData] = useState([]);
...    
{data &&
data.map((item) => (
<li key={item.assetTypeId}>
<span>
{item.assetTypeName} - {item.assetCategory}
</span>
</li>
))}

最新更新