我正在制作非常简单的react应用程序。然而,当我尝试通过 onChange 事件调用父(实际上是祖父)组件的方法时,我不断收到Uncaught TypeError: Cannot read property 'props' of undefined
.
这是触发事件的组件/表单(因此在绑定的父组件上调用方法......是的,当我通过props从父组件传递它时,我在方法上使用了 .bound(this) 。)。
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>)
}
}
这是我如何将方法作为来自大多数父(祖父)组件的props传递。
<Months setMonth={this.setMonth.bind(this)} />
这是我如何在父级(方法所有者和方法调用者之间的组件)中将方法作为props传递
<MonthsTable setMonth={this.props.setMonth} />
最后传递给你首先看到的组件(MonthsTable)。无论是否相关,最终(大多数子)组件都会根据是否正常工作的 if 语句显示(可能以某种方式相关,我不知道)。
问题是... 为什么 (setMonth) 方法在 (handleChangeOnMonth) 方法中“不可见”。
感谢您的任何建议。