我想调用数据库API来获取有关用户public_address(元掩码)、first_name和last_name的信息。
一旦我有了这些数据(我调用了一个API),我就可以在列表中使用Map函数,然后为列表中的每个元素生成ListButtonItems。
"我所做的一切"
我的API调用工作得很好,但问题是我的结果数组没有填充,例如,当我检索我的响应(响应成功地从API中提取)时,我将响应中的所有内容添加到一个数组变量中,但该数组总是显示为空(我认为这是由于axios的异步特性)
代码
import {Box, Button, Grid, List, ListItem, ListItemButton, ListItemText} from "@mui/material"
import {useEffect} from "react";
import axios from "axios";
function RequestApproval() {
let resultArray = [];
const result = axios.get("http://localhost:3001/all-user-addresses").then((response) => {
resultArray.concat(response.data.result);
})
const listItems = resultArray.map((items) => <ListItemButton component="a" onClick={() => alert("Clicked")}>
<ListItemText primary={items.first_name}/>
</ListItemButton>)
console.log(resultArray) //This appears as empty
return (
<div style={{display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100vh'}}>
<Box style={{borderRadius: '16px', backgroundColor: '#6ea6be'}}>
<List sx={{width: '600px', maxWidth: '1000px'}}>
{listItems}
</List>
</Box>
</div>
);
}
export default RequestApproval;
1条答案
按热度按时间j9per5c41#
将函数定义为
async function RequestApproval()
,等待get request -〉const result = await axios.get(...)...
.console.log(www.example.com)的响应response.data,看看得到了什么。