我试图从父组件按钮单击调用每个子组件函数。尝试使用道具并在componentDidMount函数中将按钮单击指定给新函数,但结果是只有最后一个函数警报(“child2保存”);在按钮点击时被分配和执行,我期望警报(“child1保存”);也将被执行。
如何在父组件上单击要调用的每个子函数按钮,注意子组件在父组件内部有相当大的嵌套级别。
class Parent extends Component {
render() {
return (
<div>
<button onClick={onSaveClick}>Save</button>
<MainSection setSave={save=> this.onSaveClick= save}>
</div>
);
}
}
class MainSection extends Component {
render() {
const {setSave} = this.props;
return (
<div>
<Section1 setSave={setSave}>
<Section2 setSave={setSave}>
</div>
);
}
}
class Section1 extends Component {
render() {
const {setSave} = this.props;
return (
<div>
<Child1 setSave={setSave}>
</div>
);
}
}
class Section2 extends Component {
render() {
const {setSave} = this.props;
return (
<div>
<Child2 setSave={setSave}>
</div>
);
}
}
class Child1 extends Component {
onSave() {
alert("child1 save");
}
componentDidMount() {
const {setSave} = this.props;
setSave(this.onSave);
}
render() {
return (<div>Child1</div>);
}
}
class Child2 extends Component {
onSave() {
alert("child2 save");
}
componentDidMount() {
const {setSave} = this.props;
setSave(this.onSave);
}
render() {
return (<div>Child2</div>);
}
}
class Parent extends Component {
constructor(props) {
super(props);
this.child = React.createRef();
}
onClick = () => {
this.child.current.getAlert();
};
render() {
return (
<div>
<Child ref={this.child} />
<button onClick={this.onClick}>Click</button>
</div>
);
}
}
class Child extends Component {
getAlert() {
alert('getAlert from Child');
}
render() {
return <h1>Hello</h1>;
}
}
ReactDOM.render(<Parent />, document.getElementById('root'));
你可以这样做,并为所有的孩子有不同的参考。或者您可以在父级中有一个状态变量,并将其从父级传递给子级,在子组件中的componentDidUpdate中有一个eventHandler。并在需要触发子函数时更改状态。
componentDidUpdate(prevProps) {
if(prevProps.parentVariable !== this.props.parentVariable) {
console.log("parent called");
}
}
问题内容: 我创建了一个名为functioncalling.php的页面,其中包含两个按钮 Submit 和 Insert 。作为PHP的初学者,我想测试单击按钮时执行的功能。我希望输出出现在同一页面上。因此,我创建了两个功能,每个按钮一个。functioncalling.php的源代码如下: 这里的问题是单击任何按钮后都没有输出。 我到底哪里出问题了? 问题答案: 是的,您在这里需要Ajax。请
我正在使用ASP.NET和JavaScript创建一个计算器。当用户单击按钮时,现在正试图使它对按钮7起作用,它会调用一个javascript函数,以查看用户是否单击了clear按钮、back space按钮,或者他们是否单击了number按钮。如果它是一个数字按钮,则该函数将把数字添加到文本框中。例如,如果用户点击7然后点击8,然后点击*,然后点击1,文本框将显示:78*1。我无法使javasc
问题内容: 我正在尝试编写Django应用程序,而我却被困在单击按钮时如何调用视图函数。 在我的模板中,我有一个如下所示的链接按钮,单击该按钮会将您带到另一个网页: 单击按钮时,我还想调用Django视图函数(以及重定向到目标网站)。查看功能使数据库中的值增加,该值存储了单击按钮的次数。 该是到外部网站(如链接 www.google.com )。现在,单击该按钮时,它将打开一个新窗口,该窗口将您带
嗨,我有下面的代码给了我奇怪的行为 按钮cont_btn是bootstrap 2模式上的一个按钮。它包含一个继续按钮和一个关闭按钮。 如果我选择close按钮或单击modal外部以将其取消,然后重新打开modal,则函数将被调用两次。 我试过使用 并且我在 click不会被调用两次。在调试期间,我发现脚本重新进入 在页面加载中,我看到 但代码没有进入函数,它将跳到关闭按钮。我想这是正在初始化的两个
问题内容: 我有1个活动按钮。我想将此1按钮用于多个任务。 那我该怎么办? 如果我第一次按此按钮,则更改为2按钮 如果我按了第二次,那么它将更新我的数据 但是第一次只能工作第二次不能工作 看看我的代码我尝试了什么 您可以看到我的上面的代码,我可以使用按钮执行2个任务,但是只更改两个按钮,我将更改数据并单击按钮,然后它就无法执行 问题答案: 尝试这种方式,首先在活动类文件上声明全局变量,如下所示:
我正在制作一个棋盘游戏,8X8矩阵,在一个框架中有64个。到目前为止,我的代码是这样的: 我试图告诉哪个JButoon是使用此代码单击的: 然而,我不知道如何辨别点击了哪个Jbutton。