По какой-то причине значение этого теряется в обработчике обработчика событий. Читая документы, я подумал, что реакция на это сделала кое-что, чтобы убедиться, что это значение установлено на правильное значение
Следующее не работает, как я ожидал
import React from 'react';
export default class Observer extends React.Component {
handleClick() {
console.log(this); //logs undefined
}
render() {
return (
<button onClick={this.handleClick}>Click</button>
);
}
}
Но это делает:
import React from 'react';
export default class Observer extends React.Component {
handleClick() {
console.log(this); //logs Observer class instance
}
render() {
return (
<button onClick={this.handleClick.bind(this)}>Click</button>
);
}
}
React и ES6 для меня новичок, но, похоже, это не правильное поведение?