【发布时间】:2021-04-09 20:48:50
【问题描述】:
我需要在我的组件中显示一些数据,不幸的是,对我的 API 的第一次调用只返回了我想要显示的部分信息,以及一些 ID。我需要再次调用这些 ID 来检索其他有意义的数据。第一个调用包含在一个 useEffect() React.js 函数中:
useEffect(() => {
const getData = async () => {
try {
const { data } = await fetchContext.authAxios.get(
'/myapi/' + auth.authState.id
);
setData(data);
} catch (err) {
console.log(err);
}
};
getData();
}, [fetchContext]);
并返回一个对象数组,每个对象代表给定Employee的约会,如下:
[
{
"appointmentID": 1,
"employeeID": 1,
"customerID": 1,
"appointmentTime": "11:30",
"confirmed": true
},
... many more appointments
]
现在我还想检索有关客户的信息,例如姓名、电话号码等。我尝试设置另一种方法,例如 getData(),它会在我遍历各种约会时返回我需要的信息将它们显示为表格的行,但我学到了在渲染方法中调用的函数不应该有任何副作用的艰难方法。进行另一个 API 调用的最佳方法是什么,将每个“customerID”替换为存储客户 ID 和其他数据的对象?
[在我尝试过的方法之下,返回一个 [Object Promise]]
const AppointmentElements = () => {
//Loop through each Appointment to create a single row
var output = Object.values(data).map((i) =>
<Appointment
key={i['appointmentID'].toString()}
employee={i["employeeID"]} //returned a [Object premise]
customer={getEmployeeData((i['doctorID']))} //return a [Object Promise]
time={index['appointmentTime']}
confirmed = {i['confirmed']}
/>
);
return output;
};
【问题讨论】:
标签: javascript reactjs axios