javascript - 进行嵌套 API 调用以获取所有列表
问题描述
在我的场景中,我有一个 API 调用来命中,并且在 API 的响应中,我必须调用最终的 API 来获取列表记录。
从第一个 API 中,我将获得一个标志,我必须在该标志上进行条件 API 调用以获取记录。
问题是, GET_LIST 被 react-admin 调用,因此我无法处理两个异步 API 调用。
我尝试使用查询和自定义数据源。
这是 react-admin 调用来获取列表的 API 类型。
GET_LIST: {
request(params: GetListParams): Ticket {
return {
method: 'GET',
url: `${base}/q`,
headers: makeHeaders(token),
query: mapQueryParams(params, universalFilters)
}
},
response(res: Object): {total: number, data: Array<Contact>} {
const {hits, rows} = res
return {
total: hits,
data: rows.map(row => {
return {...row, id: getId(row)}
})
}
}
},
这是为列表调用的组件。
export const ContactList = (props) => {
return (
<List {...props} filters={<Search />} bulkActionButtons={<PostBulkActions />}>
<Datagrid className="data-grid">
<GravatarField source="email" label="" sortable={false} />
<LinkField
source="first"
label="First Name"
text={ ({first}) => first }
deriveUrl={ ({id}) => `/#/contacts/${id}` }
target='' />
<LinkField
source="last"
label="Last Name"
text={ ({last}) => last || '(unknown name)' }
deriveUrl={ ({id}) => `/#/contacts/${id}` }
target='' />
<DateField source="lastActivity" />
<TextField source="email" />
<PhoneNumberField source="primaryPhone" label="Phone" sortable={false} />
<MultiTagField source="tags" sortable={false} deletable={false} />
{/* <DeleteButton /> */}
</Datagrid>
</List>
)
}
解决方案
根据我对您的代码的了解,这应该是您的数据提供者的工作。因为它应该返回一个承诺,所以您可以在其中进行两个 api 调用,并且只有在您获得第二个调用响应后才解决
推荐阅读
- python - 数据框上的dropna(),为什么行数低于预期?
- react-native - 如何使苹果设备上的通知点击重定向到链接?
- javascript - 如何正确删除弹出窗口
- android - 无法为 SwipeRefreshLayout 定义 setOnRefreshListener
- reactjs - `react-scripts build' 正在使用 1+ GB 的 RAM
- php - Processmaker 3.* 路径遍历问题
- javascript - 如何使同一按钮的不同实例独立响应鼠标事件
- python - Python kivy 在 TreeView 中显示大量数据
- php - 无法访问空变量的属性(“nom”)
- sql-server - 选择记录以将列总和为 600