Согласно источнику, оба на 2.9.7,
https://github.com/marmelab/react-admin/blob/v2.9.7/packages/ra-core/src/actions/dataActions/crudCreate.ts#L86
и
https://github.com/marmelab/react-admin/blob/v2.9.7/packages/ra-core/src/types.ts#L7
Идентификатор должен быть там, на action.payload.id. Так как это не так, это либо ошибка реагирования с правами администратора, которую вы можете попытаться изменить, чтобы исправить версию, либо ваш dataProvider не возвращает идентификатор созданных ресурсов, но с этим, реакция-администратор, вероятно, будет жаловаться, и вы уже заметили ошибка, и после создания, если redirect = "edit", вы будете перенаправлены в / resource / undefined. Это происходит?
Если это ошибка ra, вы можете попытаться извлечь id из action.meta.redirectTo, если он там есть, или вообще не использовать sagas, перехватывать запросы dataProvider и каждый раз, когда запрос CREATE завершается успешно , сделайте ваш второй звонок:
import { CREATE } from 'react-admin'
const interceptorDataProvider = dataProvider = async (verb, resource, params) => {
if (verb === CREATE) {
let response
try {
response = await dataProvider(verb, resource, params)
} catch (e) {
return Promise.reject(e)//ra expects rejecteds promises
}
//do your second call with response.data.id
return response
}
return dataProvider(verb, resource, params)
}