reactjs - 处理多个类似 API 调用的更好方法
问题描述
我正在尝试使用 react 制作一个前端网站,并且我正在使用 NASA 拥有的 API。我的主要问题与 4 个火星漫游者有关:好奇号、机遇号、精神号和任务清单。这些漫游者中的每一个都有一个与它们相关的 API,可以提供他们拍摄的照片,我这样处理第一个漫游者:
//App.js
onTermSubmit = async (term) =>{
const response = await MarsPics_Curiosity.get('',{
params:{
earth_date: term,
api_key: 'KEY'
})
this.setState({Marspictures_Curiosity: response.data.photos, MarsDate_Curiosity: term})
}
我正在考虑再制作 3 个这些来调用其余的流动站 API。但后来,我有点意识到这似乎有点多余和重复。所以,我想知道是否有更好的方法来处理这个问题而无需再制作 3 个单独的函数?
解决方案
您可以将流动站的名称传递给您的函数并根据此参数计算字段和对象名称
async (term, roverName) =>{
const response = await window["MarsPics_" + roverName].get('',{
params:{
earth_date: term,
api_key: 'KEY'
})
this.setState({
["Marspictures_" + roverName]: response.data.photos,
["MarsDate_" + roverName]: term
})
}
```
推荐阅读
- android - 工具栏盲片
- linux - Kubernetes cron 作业提前 1 分钟运行
- r - 使用 ggplot 根据第一个数据点的所有结果绘制图表
- xml - Android Studio - 按钮 XML 设计
- driver - 点击 Win32 适配器安装失败
- delphi - 如何在 Delphi 中调试 CEF3 / libcef.dll 并收集有关 c0000005 / 001dea9b 异常的信息
- ios - 如何获取稍后将存储在 Realm 表中的 JSON 数组?
- android - 是否可以将 Jenkins 用于 Flutter?
- python - 安排 SQLAlchemy 清除表中的所有行
- httpclient - 如何通过 Httpclient 将 JSON 数据发布到 Pardot API