программа для печати частоты элементов в react, но получает ошибку «Не удается прочитать свойство ‘charAt’ неопределенного»

#javascript #reactjs

Вопрос:

 for (counter = 0;counter < actualLength;counter  ){
getCharacter = this.sentence.charAt(counter);
  if (getCharacter>='a' amp;amp; getCharacter <'z')
    noOfCount = noOfCountsOfEachCharacter[getCharacter];
    noOfCountsOfEachCharacter[getCharacter] = noOfCount ? noOfCount   1 : 1;
}
document.write('<table border="1" align-items="center">')
for (counter = 0; counter < 26; counter  ){
var sortChar = lowerAlph[counter];
document.writeln("<tr><td>"   sortChar   "</td>")
document.writeln("<td>"  noOfCountsOfEachCharacter[sortChar]   "</td></tr>")
}
 

Получение значения предложения через API, который работает нормально, но выдает ошибку «Не удается прочитать свойство ‘charAt’ неопределенного».
Застрял здесь так долго, спасибо за решение заранее.

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

1. Вероятно, потому this.sentence , что не определено.

2. Кстати, это компонент реакции?

3. спасибо, но это.предложение определено, и, просто напечатав значение этого.state.предложения, я получаю значение записи. что-нибудь еще

4. да, я должен поделиться полным кодом. На самом деле я только начал с react и многого не знаю, а также борюсь с ошибками с утра, но не смог преодолеть эту ошибку

Ответ №1:

Я думаю, что это опечатка.

Вы должны получить доступ к переменным состояния, подобным этому

 this.state.sentence.charAt(counter);
 

Ответ №2:

Я предполагаю, что это внутри компонента класса React. Если это так, возможно, вы запускаете этот код до this.sentence того, как в нем появятся какие-либо данные. Как вы сказали, он заполнен из API, поэтому вам нужно обязательно запустить этот код после его заполнения.

Другая проблема заключается в том, что вы обращаетесь к значению как к переменной класса, а не к переменной состояния, это должно быть

this.state.sentence .

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

1. Спасибо, Маркес, это действительно помогло