I am using an arrow function to bind this inside a React component. Please see the handleChange() function below. When I put a breakpoint inside the arrow function, I find something very strange: this is defined, but this.props is undefined. In spite of all this, this.props.onChange() is properly invoked!!! Is there an explanation for this strange behavior?
class MyComponent extends React.Component {
    render() {
        const { someProp } = this.props;
        // <TextField> is an input component from Material UI library
        return (
            <TextField
                onChange={this.handleChange}
            />
        );
    }
    handleChange = event => {
        const value = event.target.value;
        this.props.onChange(value);
    };
}
P.S. On the other hand, the render() method behaves normally - this.props is defined.
Update
Here's the transpiled code produced by Babel:
_this.handleChange = function(event) {
    var value = event.target.value;
    _this.props.onChange(value);
}
 
    