#javascript #reactjs
Вопрос:
У меня есть класс компонентов React. Два из них-это методы:
getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min 1) min);
};
changeQuote() {
var randQuoteObj = this.quotes[this.getRandomInt(0, this.quotesNum)];
this.setState((state) => {
return {
randAuthor: randQuoteObj["author"],
randQuote: randQuoteObj["quote"],
randColor: this.colors[this.getRandomInt(0, this.colorsNum)]
};
});
};
Кнопка имеет changeQuote()
свой onClick
атрибут.
Проблема в том, что иногда (НЕ всегда, случайным образом) Я получаю следующую ошибку: TypeError: randQuoteObj is undefined
. Если я обновлю страницу, страница загрузится правильно. Цикл продолжается.
Я пытался сделать randQuoteObj
члена класса state
свойством реакции, но ничего не помогло. Что я делаю не так? Я нахожусь на Fedora и запускаю приложение React с помощью npm start
.
Решенный. Пожалуйста, смотрите комментарии.
Комментарии:
1. Можете ли вы показать нам весь компонент целиком?
2.
getRandomInt
включено (max
можно нажать). Вы не показываете, чтоthis.quotesNum
есть, но я предполагаю, что это длина массива, иthis.quotes[this.quotes.length]
так было быundefined
.3. Причина, по которой у вас такое поведение, заключается в том, что
this.quotes[this.getRandomInt(0, this.quotesNum)];
оно зависит от случайного, поэтому время от времени оно отличается. Похожеthis.quotes
, что он не содержит правильного значения для некоторыхthis.getRandomInt(0, this.quotesNum)
возвращаемых значений. Пожалуйста, убедитесь, что у вас есть все ценности внутриthis.quotes
. В случае, если у вас есть дополнительные вопросы, пожалуйста, обновите свой вопрос, чтобы показатьthis.quotesNum
иthis.quotes
оценить.4. @ASDFGerte, Это решило проблему. Спасибо.