使用回调函数调用this.props函数时不会触发 - reactjs

时间:2017-10-24 18:53:32

标签: reactjs

我的两个组件彼此通信时遇到了一些麻烦。在我的父组件中,我将道具传递给Modal(子组件),如下所示:

<ReopenRequestModal
    {...this.state.ReopenModalData}
    show={this.state.isReopenModalShown}
    onHide={this.closeReopenModal}
    onReopenRequestSubmitClick={this.changeSignOffStatus}
    userInfo={this.props.userInfo}
/>

然后在我的子组件中,我试图验证文本区域是否具有&lt;用户通过单击按钮提交之前的20个字符:

<ActionButton
        className="default"
        buttonText="SUBMIT"
        onClick={ () =>
          (this.state.value < 20 ?
            this.props.dispatch(notificationActions.addInfoNotification({
              title: 'Warning',
              message: 'Justification text should be at least 20 characters long',
            })) : this.props.onReopenRequestSubmitClick)}
 />

我使用回调功能,因此只有在点击实际按钮时才会触发。 this.props.dispatch函数按预期工作,但this.props.onReopenRequestSubmitClick(位于父组件中)不起作用。我可以让两个动作都能自己动作,但是当我尝试使用三元运算符将两者合并时,它就不起作用了。我是以错误的方式解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

您没有调用此功能。在()

的末尾添加this.props.onReopenRequestSubmitClick
<ActionButton
        className="default"
        buttonText="SUBMIT"
        onClick={ () =>
          (this.state.value < 20 ?
            this.props.dispatch(notificationActions.addInfoNotification({
              title: 'Warning',
              message: 'Justification text should be at least 20 characters long',
            })) : this.props.onReopenRequestSubmitClick() )}
 />