関数内でsetStateを呼び出そうとすると、「TypeError:プロパティ 'setState'が未定義です」というメッセージが表示されます。 代わりに矢印関数を宣言すると機能しますが、なぜわかりませんか?React-JS TypeError:未定義のプロパティ 'setState'を読み取ることができません
import React, { Component } from 'react';
class Note extends Component {
constructor(props) {
super(props);
this.state = {
editing: false
}
}
edit(){
this.setState({ editing: true })
}
save() {
this.setState({ editing: false })
}
renderEditNote() {
return (
<div className="note">
<textarea></textarea>
<button onClick={this.save}>SAVE</button>
</div>
)
}
renderDisplayNote() {
return (
<div className="note">
<p>{this.props.children}</p>
<span>
<button onClick={this.edit}>Edit</button>
<button onClick={this.remove}>X</button>
</span>
</div>
)
}
render() {
return this.state.editing ? this.renderEditNote() : this.renderDisplayNote()
}
}
export default Note
あなたが設定されているthis' 'よろしいですか? – Zak
'this'の値は*関数が*呼び出される方法*に依存します。また、[コールバックの中で正しい 'this'にアクセスするにはどうすればいいですか?](https://stackoverflow.com/q/20279484/218196) –
リンクをありがとう、それは私に明快さをもたらしました – netjens