arrays - 从另一个 api 端点映射数组并通过 React 子组件的 prop
问题描述
我需要将来自两个 API(即爱好和人员 API)的响应传递给我的子组件。所以我能够map()
子组件并在列表中显示数据。
来自人员 api 的响应:
{[
0: {id: 01, name: {…}, familyName: {…}, phone: 0 …}
1: {id: 02, name: {…}, familyName: {…}, phone: 0 …}
2: {id: 03, name: {…}, familyName: {…}, phone: 0 …}
3: {id: 04, name: {…}, familyName: {…}, phone: 0 …}
4: {id: 05, name: {…}, familyName: {…}, phone: 0 …}
5: {id: 06, name: {…}, familyName: {…}, phone: 0 …}
6: {id: 07, name: {…}, familyName: {…}, phone: 0 …}
]
}
来自爱好 api 的响应:
{ data: {
name: "Test name"
hobbies: (2) [{…}, {…}]
userId: "test"
_id: "4767647478"
}
}
组件:
const PersonList = () => {
const [loading, setLoading] = useState(false);
const [persons, setPersons] = useState<Person[]>([]);
const [hobbies, setHobbies] = useState<Hobbies[]>([]);
const urls = [
"https://person-api",
"https://hobbies-api",
];
const getData = async () => {
setLoading(true);
const [result1, result2] = await Promise.all(
urls.map((url) => fetch(url).then((res) => res.json()))
);
setLoading(false);
setPersons(result1);
setHobbies(result2);
};
useEffect(() => {
getData();
}, []);
return (
<div>
<div>
{persons.map((person) => {
return (
<PersonCard
key={person.id}
name={person.name}
/>
);
})}
</div>
</div>
);
};
export default PersonList;
上面的代码可以正常工作并呈现人员姓名列表。但是我如何通过我的子组件map()
传递hobbies
(来自不同的 api 响应)一个道具,例如爱好,如下所示?
<PersonCard
key={person.id}
name={person.name}
hobbies={hobby.name}
/>
解决方案
推荐阅读
- tensorflow - 使用 softmax 函数进行多任务分类
- pixi.js - PIXI 如何完全移除一个精灵
- npm - 如何在 package.json 中的 npm install 之前指定环境变量?
- c# - ASP.NET MVC 登录布局页面不显示 CSS
- postgresql - 我可以遍历数据库以一次从多个表中生成视图吗?
- php - 从ajax上传将文件名存储在db中不起作用
- swift - 为什么 jpegData 不保存我调整大小的图像?更新
- arduino - 如何使用arduino uno在一个数据包传输中向xbee路由器发送多个命令
- python - 如何从基础变量访问子模板变量?如果这甚至可能
- unity3d - Unity 滑块仅适用于 3d 中的一侧