#asp.net-core #material-design
Вопрос:
У меня проблема с компонентом MDCSelect. У меня есть два поля выбора. Когда пользователь выбирает элемент из первого поля выбора, вызывается функция ajax и перерисовывает второе поле выбора. Пока все идет хорошо.
Но когда пользователь выбирает один элемент из второго поля выбора (перерисованное поле), возникает проблема и возникает исключение. Исключение приведено ниже:
Uncaught TypeError: Cannot read properties of undefined (reading 'length') at MDCSelectFoundation.layout (VM2888 foundation.js:324) at MDCSelectFoundation.handleFocus (VM2888 foundation.js:399) at HTMLDivElement.handleFocus (VM2873 component.js:149) at Object.restoreFocus (VM2863 component.js:210) at MDCMenuSurfaceFoundation.maybeRestoreFocus (VM2866 foundation.js:661) at MDCMenuSurfaceFoundation.close (VM2866 foundation.js:355) at MDCMenuSurface.close (VM2863 component.js:109) at MDCMenu.set [as open] (VM2861 component.js:131) at Object.closeMenu (VM2873 component.js:449) at MDCSelectFoundation.setSelectedIndex (VM2888 foundation.js:242) Uncaught TypeError: Cannot read properties of undefined (reading 'length') at MDCSelectFoundation.layout (VM2888 foundation.js:324) at MDCSelectFoundation.handleChange (VM2888 foundation.js:378) at MDCSelectFoundation.setSelectedIndex (VM2888 foundation.js:246) at MDCSelectFoundation.handleMenuItemAction (VM2888 foundation.js:388) at HTMLDivElement.handleMenuItemAction (VM2873 component.js:167) at MDCMenu.MDCComponent.emit (VM2976 component.js:120) at Object.notifySelected (VM2861 component.js:386) at MDCMenuFoundation.handleItemAction (VM2868 foundation.js:154) at HTMLDivElement.handleItemAction_ (VM2861 component.js:98) at MDCList.MDCComponent.emit (VM2976 component.js:120)
Чтобы перерисовать второе поле выбора, я реализовал приведенный ниже код (упрощенный код).:
let arrBuilder = []; arrBuilder.push("lt;li class='mdc-list-item mdc-ripple-upgraded' data-value='", value, "' tabindex='", tabIndex, "'gt;"); arrBuilder.push("lt;span class='mdc-list-item__ripple'gt;lt;/spangt;"); arrBuilder.push("lt;span class='mdc-list-item__text'gt;", description, "lt;/spangt;"); arrBuilder.push("lt;/ligt;"); const li = arrBuilder.join(""); ulElement.append(li); const mdcSelect = new MDCSelect(document.querySelector('#secondSelect')); mdcSelect.layoutOptions();
Как написано выше, когда пользователь выбирает один элемент во втором поле выбора, то есть при изменении выбранного значения, возникает исключение.
Я использую material design для Интернета, версия 10 (но также пробовал с 13), на компьютере с Windows.