recordChange
не имеет доступа к this
, как в контексте класса.
recordChange() {
// 'this' is undefined.
this.props.recordChange();
}
Однако, как вы заметили, console.log(this.props);
внутри render
работает нормально. Это потому, что render
вызывается в контексте класса; тогда как recordChange
не является.
Измените его на функцию стрелки, чтобы this
находился в области видимости:
recordChange = () => {
this.props.recordChange();
}
Или свяжите его с this
в конструкторе:
constructor(props) {
super(props);
this.recordChange = this.recordChange.bind(this);
}
recordChange(){
this.props.recordChange();
}
Или еще лучше:
Не используйте дочернюю функцию вообще. Если все, что он делает, это вызывает функцию из props
, то это не нужно. Просто сделай onChange={this.props.recordChange}