На данный вопрос уже ответили:
Вообщем задача такая: написать компонент который будет возвращать тэг p и менять цвет при клике курсором на него. Я написал следующий компонент:
class Rgb extends React.Component
{
constructor (props)
{
super(props);
this.state = { color: "red" };
}
Cklicker ()
{
if (this.state.color == "red") this.setState({ color: "green" });
if (this.state.color == "green") this.setState({ color: "blue" });
if (this.state.color == "blue") this.setState({ color: "red" });
}
render () {
return (<p onClick={this.Cklicker} style={this.state}>RGB</p>);
}
}
Но при нажатий вместо того что бы поменять цвет возникает ошибка:
TypeError: this is undefined Cklicker
133 | }
134 | Cklicker ()
135 | {
> 136 | if (this.state.color == "red") this.setState({ color: "green" });
137 | ^ if (this.state.color == "green") this.setState({ color: "blue" });
138 | if (this.state.color == "blue") this.setState({ color: "red" });
139 | }
React не устанавливает контекст для обработчиков событий. Добавьте this.Clicker = this.Clicker.bind(this) в конструктор.
Либо используй стрелочные функции. Они привязывают текущий контекст к функции.
Cklicker = () => { //код функции }
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости