我的应用程序内部有一个组件,该组件处理来自API的数据,并使用该组件根据API调用中的参数值之一动态创建子代(在其自己的组件中定义)。我能够获取数据以呈现组件,但是onClick方法不起作用。这是一些代码: 父组件(在返回范围内):
onClick
子组件:
Button
}
导出默认CheckboxCustomInput;
和另一个:
onClick
}
导出默认的RadioCustomInput;
答案 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;