@grapecity / wijmo выдает ошибку во время выполнения после обновления моего проекта Angular с 8 до 9

#angular9 #wijmo #angular-ivy #angular-upgrade #grapecity

#angular9 #wijmo #angular-ivy #angular-обновление #grapecity

Вопрос:

Недавно я пытаюсь обновить свой проект angular с 8 до 9. При обновлении я также обновил wijmo из wijmo / wijmo в пакет @grapecity / wijmo, поскольку он поддерживает IVY.

Но после завершения обновления я могу скомпилировать приложение, но во время выполнения я получаю следующую ошибку

 global-error-handler.service.ts:43 Error: Uncaught (in promise): TypeError: (0 , t[n]) is not a function
TypeError: (0 , t[n]) is not a function
    at backend.js:61
    at Reflect.<anonymous> (backend.js:61)
    at push../node_modules/@grapecity/wijmo.angular2.grid.detail/__ivy_ngcc__/index.js.__decorate (index.js:28)
    at index.js:53
    at Object../node_modules/@grapecity/wijmo.angular2.grid.detail/__ivy_ngcc__/index.js (index.js:53)
    at __webpack_require__ (bootstrap:84)
  

Комментарии:

1. Можете ли вы точно указать, какую версию wijmo вы используете?

2. Я использую версию «5.20202.732». Если я изменю «enableIvy»: false в tsconfig, тогда он работает нормально. Но если я выберу IVY, я получаю указанную выше ошибку.

3. Спасибо за информацию. Мы проводим некоторое расследование с нашей стороны. Но если у вас есть образец воспроизведения, это поможет нам отладить это намного быстрее. Не стесняйтесь обращаться по электронной почте (см. Ниже).

4. Еще один вопрос, наследуете ли вы наши компоненты? В декораторах с Ivy есть некоторые серьезные изменения, и это может быть одним из них. Я добавил еще несколько объяснений к приведенному ниже ответу. Тема, на которую я ссылался, тоже гораздо более подробная.

Ответ №1:

Я хотел бы получить дополнительную информацию об этой ошибке. Самое быстрое, что нужно проверить, это порядок инициализации свойства. В Ivy свойства интерпретируются так, как они указаны в разметке (ранее wijmo контролировал, как они интерпретировались). Таким образом, вы можете разбивать компоненты, устанавливая определенные свойства перед другими.

Например, если я попытаюсь установить SelectedIndex в поле со списком ДО того, как я установлю источник данных, приложение остановится во время выполнения, потому что в списке еще нет элементов для выбора.

Дополнительная информация здесь: https://www.grapecity.com/wijmo/docs/GettingStarted/Angular-Components#property-initialization-order-in-angular-9-ivy-and-higher

Следующее, что нужно проверить, это декораторы компонентов (если вы наследуете наши компоненты). В Ivy есть некоторые серьезные изменения в декораторах.

Например, вам может потребоваться добавить {descendants: true} запросы к ContentChildren .

Или вам может потребоваться добавить @Injectable декоратора в свой класс.

Вы можете прочитать больше об основных изменениях в Ivy и о том, как их исправить, здесь: https://angular.io/guide/ivy-compatibility-examples

Но, пожалуйста, не стесняйтесь обращаться к нам, чтобы работать напрямую: wijmoexperts@grapecity.com