此问题在此处已有答案:
What is the use of the JavaScript 'bind' method?(23个答案)
五年前就关门了。
我正在研究Reactjs,有一段代码如下:
import React from 'react';
class App extends React.Component {
constructor() {
super();
this.state = {
data: []
}
this.setStateHandler = this.setStateHandler.bind(this);
};
setStateHandler() {
var item = "setState..."
var myArray = this.state.data;
myArray.push(item)
this.setState({data: myArray})
};
render() {
return (
<div>
<button onClick = {this.setStateHandler}>SET STATE</button>
<h4>State Array: {this.state.data}</h4>
</div>
);
}
}
export default App;
点击按钮后,“SET STATE”字符串会出现。但是我不明白this.setStateHandler.bind(this);
函数的用法。谁能给我解释一下吗?
1条答案
按热度按时间m2xkgtsf1#
this.setStateHandler().bind(this)
会将函式setStateHandler()
的内容设定为类别对象。这是必要的,这样您才能在方法内呼叫this.setState({...})
,因为setState()
是React.Component
的方法。如果您没有.bind(this)
,就会收到setState()
方法未定义的错误。