嵌套的动态子组件中的自定义方法不会触发React

时间:2018-09-19 15:11:11

标签: reactjs

我的应用程序内部有一个组件,该组件处理来自API的数据,并使用该组件根据API调用中的参数值之一动态创建子代(在其自己的组件中定义)。我能够获取数据以呈现组件,但是onClick方法不起作用。这是一些代码: 父组件(在返回范围内):

onClick

子组件:

Button

}

导出默认CheckboxCustomInput;

和另一个:

onClick

}

导出默认的RadioCustomInput;

2 个答案:

答案 0 :(得分:1)

收音机是否正常工作,但复选框不起作用?看来您正在将一个名为handleOnClick的道具传递到您的复选框组件,但是希望有一个handleCheckboxClick道具。

答案 1 :(得分:1)

在Checkbox组件中编辑方法prop调用后,我可以通过以下调整将事件传递给每个孩子的onClick方法:onClick={(e) => this.handleCheckboxOnClick(e)}

我也按照@larz的建议,删除了父函数中的return函数,并仅通过引用来传递方法。

我剩下的问题是CSS,因为<input/>的css规则为visibility:hidden,而<label/>元素正在处理与onClick的CSS可视交互。为了解决这个问题,我将onClick方法移到了<label/>上,并向子链本地onClick方法中的属性定义添加了一个本机JS方法,如下所示: let radioState = e.target.childNodes[0].value;