这里有一个问题,我在React.js应用程序中有一个FormControl组件,我在其中呈现了几种不同类型的其他组件。例如,在下面的代码中,您可以看到我呈现了一个CheckBoxWithLabel。你会注意到我传递了一个函数
onCheck={this.toggleCheckBox}
因此,在CheckBoxWithLabel组件(代码未显示)中,我可以使用onChange事件(react中复选框的内置事件)调用它
onChange={this.props.onCheck} //this code's in the CheckBoxWithLabel
因此,结果是,当单击复选框时,会调用父组件中的toggleCheckBox
函数,但这仅适用于下面显示的第一个CheckBoxWithLabel
,其他的(在第二个返回函数中动态创建的)无法选中,因此,不会调用toggleCheckBox函数。
那是为什么呢?
如果我没有尝试调用父组件上的函数,而是让这些组件用CheckBoxWithLabel组件中的函数进行响应,那么它们工作正常。只有在父级中设置函数时,复选框才会停止工作,并且不会调用toggleCheckBox函数。
toggleCheckBox: function(){
console.log('toggle');
}
render: function(){
return (
<div>
<CheckboxWithLabel labelOn="On" labelOff="Off" item='blah' onCheck={this.toggleCheckBox} />
<ul>
{
this.props.formElements.map(function(item) {
return <CheckboxWithLabel labelOn="On" labelOff="Off" item={item} onCheck={this.toggleCheckBox} />
})
}
</ul>
</div>
);
}
map内部的函数需要绑定,以便它可以使用this
的正确实例来检索函数:
render: function(){
return (
<div>
<CheckboxWithLabel labelOn="On" labelOff="Off" item='blah' onCheck={this.toggleCheckBox} />
<ul>
{
this.props.formElements.map(function(item) {
return <CheckboxWithLabel labelOn="On" labelOff="Off" item={item} onCheck={this.toggleCheckBox} />
}.bind(this));
}
</ul>
</div>
);
}
在Vue 2.0中,文档和其他文档清楚地表明,父母与孩子之间的沟通是通过道具进行的。 父母如何通过道具告诉孩子事情发生了? 我应该看一个叫事件的道具吗?这感觉不对,替代方案也不对(/是子元素到父元素的,中心模型是远程元素的)。 我有一个父容器,它需要告诉它的子容器,可以在API上执行某些操作。我需要能够触发函数。
我有两个组成部分: 父级 子
问题内容: 如果我有类似的东西 我想从我拥有的地方访问,该怎么办? 问题答案: 推荐用于16.3之前的React版本 如果无法避免,那么从React文档中提取的建议模式将是: 该 家长 转发绑定到一个功能道具 家长 。当呼叫作出反应的 儿童的 道具也将分配 孩子的 给 父母的 财产。 建议用于React> = 16.3 引用转发是一种选择加入功能,它使某些组件可以接收它们收到的引用,并将其进一步向
在本教程中,他们将一个回调函数从父组件传递到子组件,并从子组件传递到子组件。我的问题是如何设置参数?我的猜测是,起点是在组件中调用。从那以后,我就不知道是如何进入的了。它是否存储在“on click方块板”中?
我创建了一个日历应用程序,可以添加注释。为了实现添加注释的功能,我创建了一些父组件,它有自己的状态,然后传递给子组件。子组件应该在构造函数中接受来自执行的。但是,由于setState函数异步ChildComponent没有时间等待父母组件的道具。 如何设置ChildComponent的初始状态,等待父母组件的道具(换句话说,同步)? 父组件: ChildComponent:
我需要在ReactJS中从父组件调用子组件方法。我试过使用裁判,但不能做到这一点。有没有人能提出任何解决方案。多谢了。