화살표 함수를 사용하여 반응 컴포넌트 내에서 this
을 바인딩합니다. 아래 handleChange()
기능을 참조하십시오. 화살표 함수 안에 중단 점을 넣을 때 매우 이상한 것을 발견했습니다 : this
이 정의되었지만 this.props
은 undefined
입니다. 이 모든에도 불구하고 this.props.onChange()
제대로 호출됩니다! 이 이상한 행동에 대한 설명이 있습니까?this.props는 반응 컴포넌트 내에서 화살표 함수에서 정의되지 않은 것으로 표시됩니다.
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. 반면에 render()
메서드는 정상적으로 작동합니다. 즉 this.props
이 정의됩니다. 당신이 바벨의 속임수되고있어,하지 않는 것보다
_this.handleChange = function(event) {
var value = event.target.value;
_this.props.onChange(value);
}
'handleChange'가 어떻게 호출되는지 보여주세요. – FuzzyTree
@FuzzyTree, 나는'handleChange'가 호출되는 방법을 보여주기 위해 코드를 업데이트했습니다. – Naresh
실제로 실행 된 코드 (transpiled 코드)를 보았습니까? 번역 된 코드는 아마'this '를 사용하지 않을 것입니다. –