When you extend
React.Component
with ES2015 class syntax you need to bind your action handlers to a context of your class.
Try this: onChange={e => _handleTextChange(e)}
Generally, it's better not to use arrow functions or bind
methods inside render
as it generates a new copy of the function on any render
call. Move function declaration to the class constructor
.
I personally prefer to use arrow functions as class properties in this case
class MyClass extends React.Component {
handleClick = () => {
// your logic
};
render() {
return (
<button onClick={this.handleClick}>Click me</button>
);
}
}
It's not a part of ES2015 specification but babel stage-0 preset supports this syntax
You can read more about context binding in React in this article
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…