Reactjs 函数 "is not a function"

Reactjs function "is not a function"

我正尝试像往常一样在提交时使用附加函数,但它显示它不是函数。

confirmSubmission = () => { // This doesn't work either: confirmSubmission() {
    //doSomething();
}

onSubmission(survey, options) {
    this.confirmSubmission(); // here it says Uncaught error: confirmSubmission is not a function
}

我使用的函数:

return (<MyCOmponent model={model} onComplete={this.onSubmission}/>);

如果 confirmSubmission 不存在,我在 onComplete 中的其他代码可以正常执行。

我有一个与另一个函数相似的代码,它在同一组件中工作得很好:

componentDidMount() {
    this.loadData(); // This works
}

loadData() {
    doSomething();
}

我很困惑为什么它不喜欢 confirmSubmission 调用。有什么想法吗?

您一定忘记了将 this 上下文绑定到 onSubmission

constructor(/*...*/) {
  //..
  this.onSubmission = this.onSubmission.bind(this)
}

return (<MyCOmponent model={model} onComplete={this.onSubmission.bind(this)}/>);

尝试更换

onSubmission(survey, options)

加上箭头函数,就是著名的“this”问题