220320レスポンスバインディング
バインディング
Javascriptのthisとバインド
Javascript this
これは、このメソッドを含むobjectを表す(
var A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
A.sayHello(); //"Hello"
Aのアイテムを受け取るハロー出力
var A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
let B = A.sayHello; // undefined
console.log(B);
このとき必要なのはバインディングである
バインド(binding)
var A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
let B = A.sayHello.bind(A);
console.log(B); // Hello
レスポンスにバインド
応答で主に使用される方法は、コンストラクション関数でバインドされます.
次の例では、エラーが発生しました.
class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
}
handleClick() {
this.setState({
message: 'Goodbye!' // 클릭하면 Goodbye 바뀌는 함수
})
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button onClick={this.handleClick}>Click</button>
</div> // 온클릭 이벤트와 함수 연결
)
}
}
ボタンをクリックしてHelloをGoodbyeとして作成する例
これにより、ボタンを押すとCannot read property"setState"of undefinedエラーが発生します.
バインドが必要です
Constructorでバインド
次の例は、主に一般的なバインド方法です.
これは公式文書で紹介されている方法です.
class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
this.handleClick = this.handleClick.bind(this); // 바인딩!!!!!!!!!!!
}
handleClick() {
this.setState({
message: 'Goodbye!'
})
console.log(this) // EventBind
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button
onClick={this.handleClick}> // 이벤트와 함수 연결
Click
</button>
</div>
)
}
}
矢印関数のバインド
自動バインド
Reference
この問題について(220320レスポンスバインディング), 我々は、より多くの情報をここで見つけました https://velog.io/@nulee1000/220320-React-바인딩テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol