javascript - 如何捕获在 react-admin 中创建的记录的新 ID?
问题描述
我想在创建记录后立即触发一个操作以使用在 react-admin 中创建的记录的新 ID。
最好的方法是什么?
以下是一些基于您可以传递给 SimpleForm/TabbedForm 的道具的想法以及项目维护者之一的这个问题。
- 包装
save
传递给表单的函数。 - 为我的表单创建一个自定义
toolbar
和保存按钮,尝试将它挂在那里。 - 使用表单
redirect
道具重定向到一个临时页面,我在其中使用新 ID 进行工作。
或者,
- 尝试使用redux-form API挂钩表单生命周期事件。
- 在我的自定义数据提供程序中添加一些额外的代码来触发我的操作。
还有其他想法吗?
解决方案
您可以创建自定义 saga 并处理 CRUD_CREATE_SUCCESS 操作: https ://marmelab.com/react-admin/Actions.html#custom-sagas
createSuccessSaga.js
import {
put,
takeEvery,
} from 'redux-saga/effects'
import {
CRUD_CREATE_SUCCESS,
} from 'react-admin'
function* createSuccess(action) {
try {
console.log('createSuccess:', action) // action.payload.data.id -> Record ID
yield put('you action')
} catch (error) {
console.log('createSuccess:', error)
}
}
function* createSuccessSaga() {
yield takeEvery(CRUD_CREATE_SUCCESS, createSuccess)
}
export default createSuccessSaga
推荐阅读
- asp.net - Window 10 1 月 14 日更新后重定向框架内的表单身份验证问题
- r - 如何在 facet_grid 中将右侧条带切换到左侧
- android - 如果应用程序通过深层链接打开,共享元素转换不起作用
- kendo-ui - 如何使用动态过滤功能过滤剑道网格列值
- r - 如何从终端终止 R?
- r - 如何参考大于零的其他值获得最小单个值?
- python - setup.py 的目的是什么?
- regex - 如何比下面更进一步拆分组?(正则表达式)
- forms - 如何在导航抽屉中为 xamarin 表单添加子菜单
- python - 一段时间后,Python selenium chromedriver 给了我错误