如何在Javascript中将函数绑定到自身中

时间:2019-07-13 16:20:26

标签: javascript reactjs function bind

我想像自己一样绑定功能 这样我可以使用此setState更改状态 帮我解决这个 function(response){ this.function=this.function.bind(this) console.log(response) }

3 个答案:

答案 0 :(得分:0)

尝试这个希望对您有用

axios.post(" http://${REACT_APP_SERVER_URL}/facebook", { uid: user }).then((response) => {
        console.log('hello')
        if (response.data.success) {
            const { checked } = this.state;
            const newChecked = [...checked];
            newChecked.push(1)
            this.setState({ checked: newChecked });
            console.log(this.state.checked)
            history.push("/dashboard");
        }
    }).catch(err=>{
        console.log(err)
    })

答案 1 :(得分:0)

在内部绑定函数是一件令人困惑的事情。您正在修改该函数,下次调用该函数可能不会达到预期的效果。您的问题是XY problem的经典示例。

您可能正在寻找的内容在https://reactjs.org/docs/faq-functions.html#how-do-i-bind-a-function-to-a-component-instance的React文档中进行了描述。

您有两种选择,可以致电bind或使用arrow function

class MyComponent extends Component {
  constructor() {
    /* Bind the value of this */
    this.myFunction = this.myFunction.bind(this);
  }

  render() {
    <div>
      {/* Or use an arrow function */}
      <button onClick={() => this.myFunction()}>My button</button>
    </div>
  }
}

答案 2 :(得分:0)

尝试使用此方法绑定您的响应功能

function(response){
     //this.function=this.function.bind(this)
     console.log(response)
 }.bind(this)