DeleteButton вызывает неправильный элемент

Я реализую основной API asp.net с admin-on-rest. Пользовательский клиент REST взаимодействует с конечными точками API, но сопоставление довольно стандартное.

Когда я пытаюсь внедрить в интерфейс, удаление элементов работает нормально. Тем не менее, я получаю сообщение об ошибке при каждом представлении редактирования или удаления элемента со следующим текстом: «Неверный элемент». Консоль пуста, и все работает как положено.

Что вызывает ошибку - и как я могу это решить?

Я прикрепил скриншот всплывающего окна с ошибкой.

Скриншот ошибки

Обновление 1. Вот код моего пользовательского REST-клиента: customrestclient gist и прилагаемый файл fetch. js: fetch.js


person Luffi    schedule 21.03.2018    source источник


Ответы (2)


Дважды проверьте, что ваш пользовательский restClient возвращает как минимум id удаленного ресурса внутри объекта data.

person Gildas Garcia    schedule 22.03.2018
comment
Я проверил возврат. Он возвращает идентификатор - когда удаление завершено. Ошибка появляется, когда я открываю страницу редактирования до того, как происходит фактическое удаление, но только если ресурсу назначено remove={Delete}. - person Luffi; 22.03.2018
comment
Почему вы пытаетесь открыть страницу редактирования удаляемого элемента? - person Gildas Garcia; 23.03.2018
comment
Возможно, я сделал расплывчатое описание. Простите за это! Проблема возникает только на ресурсах, где реализован атрибут удаления. Когда я открываю страницу редактирования или удаления для этого ресурса, появляется сообщение об ошибке. - person Luffi; 02.04.2018
comment
Пока я выяснил, что за такое поведение отвечает node_modules/admin-on-rest/lib/sideEffect/saga/crudResponse.js. Похоже, что для payload.data.Id задано значение undefined, хотя payload.data не пусто и содержит идентификатор, что запускает поведение при наличии payload.data.id (undefined) != requestPayload.id (2). Я приложил скриншот консоли, показывающий, что идентификатор не пуст здесь. Есть ли способ предотвратить это? - person Luffi; 02.04.2018
comment
У вас есть собственный клиент restClient? Если да, то можешь выложить сюда? - person Gildas Garcia; 03.04.2018

Наконец-то я смог решить проблему. Одна из моих конечных точек API вернула список вместо одного элемента для одного из моих элементов ReferenceInput.

Это был ответ контента до моего изменения:

[{
    "languageId": 2,
    "id": 2,
    "name": "Danish",
    "isoCode": "dan"
}]

И это правильный ответ, который не вызывает ошибку:

{
    "languageId": 2,
    "id": 2,
    "name": "Danish",
    "isoCode": "dan"
}
person Luffi    schedule 16.06.2018