.map axios get 调用的结果
.map the result of an axios get call
我创建了这个数据:
arrayOfObjects = [{"category": "Mainbutton", "description": "Request Data Analysis", "hyperlink": "https://xxx.xxx.xxx.com/display", "sorting": 1, "status": "Online", "title": "Request Data Analysis", "update_date": "22.10.2020"}
并将其与此功能一起使用以显示它:
function MyReactComponent() {
return (
<>
{arrayOfObjects.map(({ title, description }) => (
<p key={title}>{title} - {description}.</p>
))}
</>
);
}
但是当我使用 Axios API 调用时:
async function axiosTest() {
const response = await axios.get("ajax/api/mainpage_links")
console.log(response.data)
return response.data
}
const arrayOfObjects = axiosTest()
function MyReactComponent() {
return (
<>
{arrayOfObjects.map(({ title, description }) => (
<p key={title}>{title} - {description}.</p>
))}
</>
);
}
我有以下错误:
属性 'map' 在类型 'Promise' 上不存在。 TS2339
我在谷歌上搜索了很多但无法弄清楚为什么它不起作用,因为我的理解是 response.data 应该与 .map
一起使用
必须使用 await 或 .then 调用异步方法
arrayOfObjects =await axiosTest()
您必须像这样在 useEffect() 上调用此方法:
const [arrayOfObjects ,setData]=useState([]);
useEffect(()=>{
const axiosTest=async()=> {
let response = await axios.get("ajax/api/mainpage_links")
console.log(response.data)
setData(response.data)
}
axiosTest();
})
我创建了这个数据:
arrayOfObjects = [{"category": "Mainbutton", "description": "Request Data Analysis", "hyperlink": "https://xxx.xxx.xxx.com/display", "sorting": 1, "status": "Online", "title": "Request Data Analysis", "update_date": "22.10.2020"}
并将其与此功能一起使用以显示它:
function MyReactComponent() {
return (
<>
{arrayOfObjects.map(({ title, description }) => (
<p key={title}>{title} - {description}.</p>
))}
</>
);
}
但是当我使用 Axios API 调用时:
async function axiosTest() {
const response = await axios.get("ajax/api/mainpage_links")
console.log(response.data)
return response.data
}
const arrayOfObjects = axiosTest()
function MyReactComponent() {
return (
<>
{arrayOfObjects.map(({ title, description }) => (
<p key={title}>{title} - {description}.</p>
))}
</>
);
}
我有以下错误:
属性 'map' 在类型 'Promise' 上不存在。 TS2339
我在谷歌上搜索了很多但无法弄清楚为什么它不起作用,因为我的理解是 response.data 应该与 .map
一起使用必须使用 await 或 .then 调用异步方法
arrayOfObjects =await axiosTest()
您必须像这样在 useEffect() 上调用此方法:
const [arrayOfObjects ,setData]=useState([]);
useEffect(()=>{
const axiosTest=async()=> {
let response = await axios.get("ajax/api/mainpage_links")
console.log(response.data)
setData(response.data)
}
axiosTest();
})