redux 什么是用法:this.方法.bind(this)[重复]

kmbjn2e3  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(137)

此问题在此处已有答案

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);函数的用法。谁能给我解释一下吗?

m2xkgtsf

m2xkgtsf1#

this.setStateHandler().bind(this)会将函式setStateHandler()的内容设定为类别对象。这是必要的,这样您才能在方法内呼叫this.setState({...}),因为setState()React.Component的方法。如果您没有.bind(this),就会收到setState()方法未定义的错误。

相关问题