【发布时间】:2022-01-07 22:35:28
【问题描述】:
我正在调用一个 API 来获取一组用户,对他们进行排序,如果personalTrainerId 等于我的userId,则将它们放入一个数组中,然后将它们呈现为卡片。
我想接收数据
我的客户:[{'userId':86,'firstName':'Client','lastName':'23','email':'newclient@ab'},{'userId':96,'firstName' :'cl','lastName':'ie','email':'cl@ie'}]
但是我得到了结果
MyClients: {'userId':86,'firstName':'Client','lastName':'23','email':'newclient@ab'},{'userId':96,'firstName': 'cl','lastName':'ie','email':'cl@ie'},
(不带括号)
我从调用中得到响应,但是当我尝试渲染它们时,对象返回为“未定义”——我对此很陌生,我可能会完全错误地处理它。任何帮助将不胜感激。
我将响应添加到数组的代码:
function AddClients(response){
const users = response.data;
var newClient="";
const myId = parseInt(getUserId())
for(var i = 0; i < users.length; i++ ){
if (response.data[i].personalTrainerId === myId){
newClient=("{'userId':"+response.data[i].userId+",'firstName':'"+response.data[i].firstName+"',
'lastName':'"+response.data[i].lastName+"','email':'"+response.data[i].email+"'}")
//
myClients.push(JSON.parse(JSON.stringify(newClient)))
}
}
console.log("Length after this: "+ myClients.length); // returns 57 as expected
myClients.map(RenderCard) // Calling to render
}
然后我尝试使用引导程序将其渲染到卡上:
const RenderCard = (card, index) =>{
return(
<Card border="dark" style={{ width: '18rem' }} key={index}>
<Card.Header>Client number: {card.userId} </Card.Header>
<Card.Body>
<Card.Title>Name:
{card.firstName} {card.lastName}{console.log("card firstname: " + card.firstName)}
</Card.Title> // Console.log returns "card firstname: undefined"
<Card.Text>
Mail: {card.email}
</Card.Text>
</Card.Body>
</Card>
)
}
__
我真的不知道如何获取正确的数据。有更好的方法吗?我只是错过了什么吗?我没有收到任何错误,而且由于我是新手,所以我真的不知道如何正确调试它。
【问题讨论】:
-
为什么要将响应推送到数组?如果要获取数据列表,则响应必须是数组,否则无需将数据推送到数组中。要渲染一个对象,您只需获取对象的项目并将其放在正确的位置
标签: javascript arrays reactjs json