Как я могу добавить ‹CreateButton› (заполнение внешнего ключа) в ReferenceManyField в admin-on-rest

У меня есть форма редактирования для записи сообщения, и я перечисляю обзоры, связанные с этим сообщением, в ReferenceManyField/DataGrid (т.е. <ReferenceManyField target="post_id" reference="reviews">). Каждый обзор имеет внешний ключ post_id в БД. Все работает нормально, у меня есть кнопка редактирования и удаления для каждой строки обзора.

Мне нужно добавить кнопку «Создать обзор» для формы публикации, чтобы поле post_id в форме «Создать обзор» было предварительно заполнено текущим id публикации. Я не очень разбираюсь в React/Redux.


person Louise Klodt    schedule 14.08.2017    source источник


Ответы (2)


Как предложил @Gildas выше, для этого вам нужен специальный компонент.

1) Настраиваемая кнопка создания, которая перенаправляет на страницу создания для обзора. Для этого вы должны посмотреть, как документация компонента React Router Link, а также как Admin On Rest будет выделять маршрут, например /:reviewId/create

2) Создайте пользовательский компонент ввода, который будет предварительно заполнять идентификатор при загрузке. Это должно быть частью ключа местоположения в свойствах, передаваемых на вашу страницу. Задавайте дополнительные вопросы в комментариях, и я постараюсь на них ответить.

React и Redux — очень простые вещи, когда вы их освоите.

person kunal pareek    schedule 14.08.2017
comment
Как я могу вызвать API для этого id и заполнить значения по умолчанию в форме создания? - person Shaharyar; 04.02.2018
comment
Я предполагаю, что есть немало разработчиков, которые едва коснулись поверхности React и уже работают с React-admin. Для них было бы очень полезно, если бы вы добавили фрагмент того, как будет выглядеть пользовательский компонент. И в качестве бонуса (поскольку его не спрашивали) также иметь дело со случаем, когда еще не найдено ни одной записи о том, на что ссылались в этом случае скорее всего, он добавит специальный заполнитель. - person Christiaan Westerbeek; 22.06.2018
comment
Вот новый вопрос для этого, если вы хотите помочь: add-a-butt" title="как будет выглядеть пользовательский компонент, использующий referencemanyfield, который добавляет приклад"> stackoverflow.com/questions/50995057/ - person Christiaan Westerbeek; 22.06.2018

На данный момент это невозможно напрямую: вам придется создать для этого собственный компонент: документация.

Кто-то пытался решить эту проблему и даже отправил запрос на включение. Надеюсь, скоро мы сможем его объединить: https://github.com/marmelab/admin-on-rest/pull/744

Изменить: это может помочь https://marmelab.com/blog/2018/07/09/react-admin-tutorials-form-for-related-records.html

person Gildas Garcia    schedule 14.08.2017
comment
Я только что узнал, что то, что демонстрирует ваш блог, больше не работает с ra 2.9.0. Не работает то, что поле Post больше не заполняется предварительно в компоненте CommentCreate. См. codesandbox.io/s/m7w28n9v58. - person Christiaan Westerbeek; 07.05.2019
comment
Я постараюсь изучить его в ближайшее время. Хотя, наверное, не раньше следующей недели - person Gildas Garcia; 09.05.2019