Как получить новый идентификатор записи, созданной в React-admin?

Я хочу запустить действие, чтобы использовать новый идентификатор записи, созданной в response-admin, сразу после создания записи.

Как лучше всего это сделать?

Вот несколько идей, основанных на свойствах, которые можно передать в SimpleForm / TabbedForm и эту проблему от одного из сопровождающих проекта.

  • Оберните функцию save, переданную в форму.
  • Создайте пользовательскую кнопку toolbar и Сохранить для моей формы, попробуйте зацепить ее туда.
  • Используйте форму redirect prop для перенаправления на временную страницу, где я работаю с новым идентификатором.

В качестве альтернативы,

Есть другие идеи?


person Wayne Bloss    schedule 21.06.2019    source источник
comment
вы также можете использовать локальное хранилище localStorage.setItem (YourId, IDValue) и читать его в любом месте вашего приложения, используя localStorage.getItem (YourId)   -  person Saqib    schedule 21.06.2019


Ответы (1)


Вы можете создать собственную сагу и обработать действие 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
person MaxAlex    schedule 24.06.2019
comment
Я отмечу это как официальный ответ, хотя я, вероятно, не буду использовать этот метод, потому что мне не нужно выполнять простой и чистый побочный эффект. Однако с добавлением этого метода, я думаю, все варианты были найдены. Спасибо. - person Wayne Bloss; 24.06.2019