Tôi đang tạo ra ứng dụng phản ứng rất đơn giản. Tuy nhiên, khi tôi cố gắng gọi phương thức của thành phần cha mẹ (thực sự là ông bà) thông qua sự kiện onChange, tôi tiếp tục nhận được Uncaught TypeError: Cannot read property 'props' of undefined
. Đây là thành phần/biểu mẫu đang kích hoạt sự kiện (do đó gọi phương thức trên thành phần cha mẹ được ràng buộc ... Có, tôi đã sử dụng .bound (this) trên phương thức khi tôi truyền nó xuống từ thành phần cha thông qua các đạo cụ.).React.js - Không thể đọc thuộc tính không xác định
class MonthsTable extends Component {
handleChangeOnMonth(e){
this.props.setMonth(e.target.id, e.target.value); // here the method is not found, causing error.
}
render(){
console.log(this.props.setMonth) // here the method is present alright
return (<form>
{this.props.months.map((e, i) =>
<input
type='number'
id={i}
key={i} // yes I know, bad habit, but in this case it doesn't matter
value={this.props.months[i]}
onChange={this.handleChangeOnMonth} />)}
</form>)
}
}
Đây là cách tôi chuyển phương thức làm đạo cụ từ phần lớn phụ huynh (ông bà).
<Months setMonth={this.setMonth.bind(this)} />
Sau đây là cách tôi vượt qua các phương pháp như đạo cụ trong các phụ huynh (các thành phần đó là giữa chủ sở hữu phương pháp và phương pháp Invoker)
<MonthsTable setMonth={this.props.setMonth} />
Và cuối cùng thông qua với thành phần (MonthsTable) mà bạn nhìn thấy đầu tiên . Wheter nó là có liên quan hay không, cuối cùng (hầu hết trẻ em) thành phần được hiển thị tùy thuộc vào nếu tuyên bố mà hoạt động tốt (Có thể bằng cách nào đó có liên quan, tôi không biết).
Câu hỏi là ... Tại sao phương thức (setMonth) 'ẩn' bên trong phương thức (handleChangeOnMonth).
Cảm ơn lời khuyên nào.
Thử ràng buộc 'this.handleChangeOnMonth' sang' this' nữa? –