#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