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
相关产品推荐
相关产品推荐

