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

Недавно я пытался обновить свой проект 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)

person Venkatesh K    schedule 04.11.2020    source источник
comment
Можете ли вы опубликовать, какую именно версию wijmo вы используете?   -  person Banzor    schedule 04.11.2020
comment
Я использую версию 5.20202.732. Если я изменю enableIvy: false в tsconfig, тогда он будет работать нормально. Но если я выберу IVY, я получаю указанную выше ошибку.   -  person Venkatesh K    schedule 05.11.2020
comment
Спасибо за информацию. Со своей стороны мы проводим расследование. Но если у вас есть репро-образец, это поможет нам отладить это намного быстрее. Не стесняйтесь обращаться по электронной почте (см. Ниже).   -  person Banzor    schedule 05.11.2020
comment
Еще один вопрос, наследуете ли вы наши компоненты? В декораторах Ivy есть критические изменения, и это может быть одно из них. Я добавил еще несколько пояснений к ответу ниже. Тема, на которую я ссылался, тоже гораздо более основательная.   -  person Banzor    schedule 05.11.2020


Ответы (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

Но, пожалуйста, обращайтесь к нам, чтобы работать напрямую: [email protected]

person Banzor    schedule 04.11.2020