Почему использование primeng p-radiobutton вызывает ошибку собственного элемента в Angular 9?

#angular #radio-button #primeng #angular9

#angular #переключатель #primeng #angular9

Вопрос:

У меня есть проект, который я недавно перенес на Angular 9 из Angular 8. Проект использует primeng version : 4.3.0 . Теперь p-radiobutton тег широко используется во всем проекте для отображения переключателей, и он не работает должным образом. p-radiobutton Тег выдает ошибку времени выполнения: Unable to get property 'nativeElement' of undefined or null reference из-за чего пользовательский интерфейс искажается . Вся трассировка стека ошибок показана ниже :

 TypeError: Unable to get property 'nativeElement' of undefined or null reference
   at RadioButton.prototype.writeValue (http://localhost:4200/vendor.js:115296:9)
   at setUpControl (http://localhost:4200/vendor.js:79928:5)
   at NgModel.prototype._setUpStandalone (http://localhost:4200/vendor.js:82718:9)
   at NgModel.prototype._setUpControl (http://localhost:4200/vendor.js:82706:32)
   at NgModel.prototype.ngOnChanges (http://localhost:4200/vendor.js:82630:13)
   at checkAndUpdateDirectiveInline (http://localhost:4200/vendor.js:67503:9)
   at checkAndUpdateNodeInline (http://localhost:4200/vendor.js:76327:13)
   at checkAndUpdateNode (http://localhost:4200/vendor.js:76289:9)
   at prodCheckAndUpdateNode (http://localhost:4200/vendor.js:76833:5)
   at Anonymous function (Function code:194:5)
 

Строка кода в html, из-за которой выдается ошибка, такова :

 <td class="alignHere">
    <p-radioButton name="myStuff" value="CAT" [(ngModel)]="StuffChosen"></p-radioButton>
</td> 
 

Когда я комментирую приведенный выше фрагмент кода, ошибка больше не появляется, но мне нужно использовать функциональность переключателя .

Кто-нибудь имеет представление о том, что это за ошибка и что может быть потенциальным решением этой проблемы? Любая помощь будет высоко оценена.

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

1. Без предоставления какого-либо правильного решения не голосуйте close .

2. Я думаю, вам действительно следует обновить версию PrimeNG.

Ответ №1:

primeng выравнивает версии с angular version , это означает, что для angular 10 используется primeng 10, а для angular 11 — primeng 11, и это относится к старой версии.

вы получаете сообщение об ошибке, потому что в primeng 4 некоторые api angular были изменены или удалены.

чтобы решить вашу проблему, просто выберите базовую версию primeng для вашей версии приложения angular

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

1. Я решил свою проблему, исправив primeng 4 radiobutton.js использование библиотеки пакетов исправлений. Это спасло мне жизнь, поскольку у меня не было полосы пропускания для обновления prime-ng.