如何绑定构造函数中的函数,以便它可以采用参数

时间:2017-02-07 22:04:25

标签: reactjs

在我的React组件中,我有以下功能:

removeOption(idx) {
    var opts = this.state.opts;
    opts.splice(idx,1);
    this.state({opts: opts});

}

为了将它绑定到组件,我需要在构造函数中绑定它。通常我用

  

this.functionName = this.functionName(this);

但之前我只处理过没有参数的函数。

  

this.removeOption = this.removeOption.bind(this);

不起作用 - 我收到错误this.state is not a function

1 个答案:

答案 0 :(得分:3)

多数民众赞成因为this.state不是一个功能。您正在寻找this.setState({opts: opts})即使函数接受参数,您也将使用相同的绑定方法。 .bind(this)只是确保在调用该方法时this的范围限定为该组件实例。