You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-admin中withLifecycleCallbacks返回修改后记录是否会破坏逻辑?

React-admin生命周期回调修改当前记录的疑问

react-admin文档包含生命周期回调的创建和使用指引,但示例仅展示操作其他类型资源数据的场景。

我们需要通过回调处理器修改当前记录,比如生成本年度已加载同类项的连续计数器,原始实现代码如下:

afterCreate: async (
  record: CreateResult<Batch>,
  dataProvider: DataProvider
) => {
  try {
    const { data } = record
    const { id, yearOfReceipt: year } = data
    const yearVal: string = year
    const idVal: string = await generateBatchId(provider, year)
    const batchNumber = `V${idVal}/${yearVal}`
    await dataProvider.update<Batch>(R_BATCHES, {
      id,
      previousData: data,
      data: {
        batchNumber
      }
    })
    return record
  } catch (error) {
    return record
  }
}

我认为该方法应返回修改后的记录,因此改写为返回原记录的修改版本:

afterCreate: async (
  record: CreateResult<Batch>,
  dataProvider: DataProvider
) => {
  try {
    const { data } = record
    const { id, yearOfReceipt: year } = data
    const yearVal: string = year
    const idVal: string = await generateBatchId(provider, year)
    const batchNumber = `V${idVal}/${yearVal}`
    const withBatchNumber = await dataProvider.update<Batch>(R_BATCHES, {
      id,
      previousData: data,
      data: {
        batchNumber
      }
    })
    // 注入更新后的记录
    return {...record, data: withBatchNumber}
  } catch (error) {
    return record
  }
}

请问这种写法是否会破坏react-admin的逻辑?或是有更优的实现方式?

注:我们未在beforeCreate逻辑中修改记录,因为希望在新资源成功保存后再生成计数器。


内容的提问来源于stack exchange,提问作者ianmayo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 09:37:38