Я использую Materializecss с React и пытаюсь динамически инициализировать поле выбора, используя:
$('select').material_select()
но я получаю сообщение об ошибке
TypeError: $ (...). Material_select не является функцией
Я делаю это, потому что я заполняю значения в поле выбора динамически, и значения иногда не отображаются в выпадающем списке выбора. Это противоречиво. иногда значения отображаются, а в некоторых случаях значения не отображаются в раскрывающемся списке выбора материала.
Образцы из моего кода ниже:
Я включил JQuery и материализовать в файле index.html
в компоненте у меня следующее:
const $ = require('jquery');
componentDidMount(){
$('select').material_select();
}
Любая помощь будет оценена. Я потратил довольно много времени, пытаясь решить эту проблему.
Отредактировано
Кажется, у меня сейчас есть решение, которое мне подходит. после включения jquery, как указано выше, я изменил строку выбора материала на:
window.$('select').material_select();
и использовал его сразу после загрузки моих значений в тэг options поля select. Мне больше не нужно вызывать его в componentDidMount.
Я также уничтожил материал, выбранный в componentWillUnmount. (хотя не уверен, что это необходимо).
componentWillUnmount(){
$('select').material_select('destroy');
}