javascript - React-Admin:如何从一个单击事件中同时调用两个端点
问题描述
所以我有一个form
包含后端两个表的数据:
- 表区,和
- 表区
通常,update
方法react-admin
很简单,但在这种情况下并非如此。
因此,我从zone
andarea
表中获取数据并将其放入一种形式中。
我还根据这个react-admin 文档saveButton
更改了在提交表单之前调整表单,因此在提交之前,值是正确的形式。values
挑战在于......
当我以某种方式单击按钮时onClick
,我需要通过 2 次调用来执行update
2 个端点。我正在考虑使用这种情况,但还没有运气。update
dataProvider
redux-saga
欢迎任何想法、提示或代码示例。
解决方案
这里有两种选择:
dataProvider.updates
只需单击一下即可调用两者。或者,您可以fetch()
直接获得更大的灵活性。(您可能想利用React.useCallback
并async
获得更好的性能)
export const SaveButton = ({
basePath = '',
label = 'Save',
record,
...rest
}) => {
const handleClick = () => {
if (record !== undefined) {
// first call -> Zone
async () => await dataProvider.update(...);
// Second call -> Area
async() => await dataProvider.update(...);
}
};
return <Button label={label} onClick={handleClick} {...rest} />;
};
- 声明两个函数分别调用每个调用
dataProvider.update
。
如果您打算在同一呼叫clickEvent
中触发任何其他呼叫后执行相同的呼叫,这将为您提供灵活性component
export const SaveButton = ({
basePath = '',
label = 'Save',
record,
...rest
}) => {
const handleClick = () => {
if (record !== undefined) {
// first call -> Zone
handleZoneCall();
// second call -> Area
handleAreaCall();
}
};
const handleZoneCall = async () => await dataProvider.update(...);
const handleAreaCall = async() => await dataProvider.update(...);
return <Button label={label} onClick={handleClick} {...rest} />;
};
以上之一应该让你去......
推荐阅读
- asp.net-core - Visual Studio 2019 如何更改 ASP.NET Core Web 项目的启动操作
- php - 更新 Chart.js 数据集 - 数组未重新初始化(Jquery / PHP)
- java - 按钮边框不显示
- python - Bing API 离线转换调整,如何在 BING GUI 中查看更新?
- python - 目标尺寸 (torch.Size([15])) 必须与输入尺寸 (torch.Size([15, 2])) 相同
- c++ - Google 测试:如何在不重新运行 SetUpTestSuite / TearDownTestSuite 的情况下多次运行测试
- php - 流明灯塔。“没有找到 `paginate` 的指令。”
- ios - CallKit 是否足够
- python - 阻止机器人创建具有相同名称的重复频道 | 不和谐.py
- list - 如何将列表和地图与飞镖中的地图项分开