У меня есть MDL, работающий с React в данный момент, и на данный момент он работает нормально.Приращение конструкции материала Lite Полоса хода с реактивом
У меня есть прогресс бар, появляющийся на странице по мере необходимости и он загружает с указанным «прогресс» на странице загрузки, когда либо введя в его номер:
document.querySelector('#questionnaireProgressBar').addEventListener('mdl-componentupgraded', function() {
this.MaterialProgress.setProgress(10);
})
или при переходе в число через переменную:
document.querySelector('#questionnaireProgressBar').addEventListener('mdl-componentupgraded', function() {
this.MaterialProgress.setProgress(value);
})
Это перестает работать после этого. Я пытаюсь обновить значение через переменную и не обновляется. Мне было рекомендовано использовать это:
document.querySelector('.mdl-js-progress').MaterialProgress.setProgress(45);
, чтобы обновить значение, но оно не работает. Даже при попытке его прямо в консоли.
При попытке с помощью консоли я получаю следующее сообщение об ошибке:
Uncaught TypeError: document.querySelector(...).MaterialProgress.setProgress is not a function(…)
Когда я пытаюсь увеличить значение с помощью переменной я не получаю ошибки, и когда я console.log (значение) я представил правильный номер (1,2,3,4 ...) после каждого события щелчка, который запускает функцию (он срабатывает, когда ответ выбран в вопроснике)
Что я хочу знать, если есть что-то очевидное, m отсутствует при использовании MTL и React, чтобы заставить компоненты работать? Был вопрос с размахом, но мне кажется, что она фиксируется следующее:
updateProgressBar: function(value) {
// fixes scope in side function below
var _this = this;
document.querySelector('#questionnaireProgressBar').addEventListener('mdl-componentupgraded', function() {
this.MaterialProgress.setProgress(value);
})
},
В React У меня есть родитель кормления ребенка с данными через реквизит и я использую «componentWillReceiveProps» для вызова функция, которая обновляет индикатор выполнения.
Я также использовал функцию «componentDidMount», чтобы узнать, не имеет значения, но она работает только при загрузке страницы. Из того, что я читал, кажется, что я должен использовать «componentWillReceiveProps» над «componentDidMount».
Он подается от родителя из-за того, что компоненты передают данные между собой. Я использовал их документы и некоторую интернет-помощь, чтобы правильно обновить родительскую функцию, чтобы затем обновить индикатор выполнения в отдельном компоненте.
updateProgressBarTotal: function(questionsAnsweredTotal) {
this.props.updateProgressBarValue(questionsAnsweredTotal);
}
Родительская функция выглядит следующим образом (я думаю, что это может быть виновником):
// this is passed down to the Questions component
updateProgressBarTotal: function(questionsAnsweredTotal) {
this.setState({
progressBarQuestionsAnswered : questionsAnsweredTotal
})
}
Я могу развесить еще немного кода, если это необходимо.
Спасибо
Вы получили опечатку там - 'MaterialProgress.setprogress' должен быть' MaterialProgress.setProgress' – hazardous
@HazardouS Спасибо, что был моим typo при вводе кода фрагмента вместо копирования и вставки. Я проверил его снова, чтобы убедиться, что это не проблема, и я все равно получаю ту же ошибку. –
Пожалуйста, поместите его в скрипку для более легкой отладки, если это возможно. – hazardous