#angular #ngrx #strapi #ngrx-data
Вопрос:
При использовании NgRx getByKey для получения записи базы данных из Strapi по заданному первичному ключу, которого не существует, я получаю следующую ошибку:
Cannot destructure property 'error' of 'sourceError'
Ответ от серверной части 404 Не найден.
Пример:
this.projectEntityService.getByKey(this.id).subscribe( (project) =gt; { ... populate form fields }, (error) =gt; { ... show error, navigate away, etc. })
Если данные будут найдены, мы заполним форму и т. Д., Но если произойдет ошибка, например, 404, где данные не найдены, то ничего не произойдет, и я не смогу выйти из системы, перейти и т. Д.
Я считаю, что это связано с тем, что данные NgRx выдают ошибку, потому что, как говорится в сообщении, они не могут уничтожить свойство ошибки:
core.js:6210 ERROR TypeError: Cannot destructure property 'error' of 'sourceError' as it is undefined. at extractMessage (ngrx-data.js:556) at new DataServiceError (ngrx-data.js:551) at ngrx-data.js:1187 at CatchSubscriber.selector (ngrx-data.js:2125) at CatchSubscriber.error (catchError.js:27) at MapSubscriber._error (Subscriber.js:75) at MapSubscriber.error (Subscriber.js:55) at MapSubscriber._error (Subscriber.js:75) at MapSubscriber.error (Subscriber.js:55) at FilterSubscriber._error (Subscriber.js:75)
// Many ways the error can be shaped. These are the ways we recognize. function extractMessage(sourceError) { const { error, body, message } = sourceError;
Теперь эта ошибка, похоже, может возникнуть из-за того, что ответ на ошибку от серверной части просто не найден в состоянии 404.
Спасибо!