То, как вы используете переменную, неверно.
Я написал ответ на аналогичный вопрос здесь . Он показывает, как обновить представление и как объявить переменные.
Пожалуйста, проверьте ответ там и дайте мне знать, если у вас все еще есть вопросы.
Вот краткое резюме из ответа там :
Если вы также хотите обновить представление (в вашем случае), вам следует использовать метод state и setState при установке или изменении значения.
Пример:
class MyContainer extends Component {
state = { testVarible: "this is a test" };
onMove = () => {
console.log(this.state.testVarible);
this.setState({ testVarible: "new value" });
}
}
Сказав это, я все еще чувствую, что вы усложняете то, что должно быть.
То, что вы должны сделать, это:
state = { text: 'some text' };
const handler = (text) => {
this.setState({ text });
};
В то время как jsx должен иметь это :
<div className="other">
<li>
<span className="bold">Other: </span>{this.state.text}
<span className="right">Price Unknown</span>
</li>
</div>