私は非常に簡単な反応アプリを作っています。しかし、onChangeイベントを介してparent(実際に祖父母)メソッドのメソッドを呼び出そうとすると、私はUncaught TypeError: Cannot read property 'props' of undefined
を取得し続けます。React.js - 未定義のプロパティを読み取ることができません
これはイベントをトリガーするコンポーネント/フォームです(バインドされた親コンポーネントのメソッドを呼び出す...はい、私は親コンポーネントから小道具を経由してメソッドに.boundを使用しました)。
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>)
}
}
ここでは、ほとんどの親(祖父母)コンポーネントからメソッドを渡す方法を示します。あなたが最初に見たコンポーネント(MonthsTable)に渡された
ここ<Months setMonth={this.setMonth.bind(this)} />
(メソッドの所有者とメソッド呼び出しの間にあるコンポーネント)私は親で小道具としてメソッドを渡す方法です
<MonthsTable setMonth={this.props.setMonth} />
そして最後に。 Wheter関連性があるかどうか、最終的な(ほとんどの子)コンポーネントは、うまく動作するif文に応じて表示されます(何らかの形で関係するかもしれませんが、わかりません)。 (handleChangeOnMonth)メソッドの中で(setMonth)メソッドが '見えない'のはなぜですか?
ありがとうございました。
'this.handleChangeOnMonth'を' this'にバインドしてみますか? –