Reactjs 通过子对象中的道具调用父对象的函数

Reactjs 通过子对象中的道具调用父对象的函数,reactjs,react-props,Reactjs,React Props,我想在子组件的另一个函数中调用父组件的函数(子组件的函数将调用父组件的函数) 我将父函数传递给子函数。但是当代码编译时,我得到了以下错误: 应为赋值或函数调用,但却看到了表达式no unused expressions 类父级扩展组件{ 构造函数(){ ... this.someFunction=this.someFunction.bind(this); } //孩子应该调用这个函数 someFunction(){ log(“做某事”); } render(){ 返回(){ } } } 类子扩

我想在子组件的另一个函数中调用父组件的函数(子组件的函数将调用父组件的函数)

我将父函数传递给子函数。但是当代码编译时,我得到了以下错误:
应为赋值或函数调用,但却看到了表达式no unused expressions

类父级扩展组件{
构造函数(){
...
this.someFunction=this.someFunction.bind(this);
}
//孩子应该调用这个函数
someFunction(){
log(“做某事”);
}
render(){
返回(){
}
}
}
类子扩展组件{
建造师(道具){
超级(道具);
this.aChildFunction=this.aChildFunction.bind(this);
}
aChildFunction(){
//这里是我得到错误的地方
这是道具;
}
render(){
返回(){
点击
}
}
}

在调用函数时,您错过了paradensis“()”

aChildFunction(){
//调用要执行的函数
这个.props.doSomething();

}
在调用函数时,您错过了paradensis“()”

aChildFunction(){
//调用要执行的函数
这个.props.doSomething();

}
有几种方法可以实现这一点

首先,您必须调用函数,正如其他答案中所述

aChildFunction(){
这个.props.doSomething();
}
render(){
返回(){
点击
}
}
您还可以将
doSomething
作为处理程序直接传递,并跳过
aChildFunction

render(){
返回(){
点击
}
}

在这种情况下,您的
doSomething
回调将以
MouseEvent
作为参数调用,但如果您不打算使用它,请不要担心。

有几种方法可以实现这一点

首先,您必须调用函数,正如其他答案中所述

aChildFunction(){
这个.props.doSomething();
}
render(){
返回(){
点击
}
}
您还可以将
doSomething
作为处理程序直接传递,并跳过
aChildFunction

render(){
返回(){
点击
}
}

在这种情况下,您的
doSomething
回调将以
MouseEvent
作为参数调用,但如果您不打算使用它,请不要担心。

仔细阅读警告-它预期会调用,您不会调用传递的函数。哇,这很简单,也很有效。我只是有点困惑,为什么它与
this.props.doSomething()一起工作取而代之。因为在另一个组件中,我通过
onClick={this.props.affunctionpassedtochild}
直接访问了渲染函数中的道具,并且可以正常工作。为什么会这样@JonRSharpeBe因为onClick后面的机器调用函数,就像在你的例子中调用this.aChildFunction一样。我明白了!谢谢我能不能把你的答案记为答案?否则,我会选择弗莱文,因为它给了我这样做的选择;这只是一个输入错误,应该关闭。请仔细阅读警告-它需要调用,而不是调用传递的函数。哇,这很简单,也很有效。我只是有点困惑,为什么它与
this.props.doSomething()一起工作取而代之。因为在另一个组件中,我通过
onClick={this.props.affunctionpassedtochild}
直接访问了渲染函数中的道具,并且可以正常工作。为什么会这样@JonRSharpeBe因为onClick后面的机器调用函数,就像在你的例子中调用this.aChildFunction一样。我明白了!谢谢我能不能把你的答案记为答案?否则,我会选择弗莱文,因为它给了我这样做的选择;这只是一个输入错误,应该关闭。@trynalearn如果答案完全解决了您的问题,请接受它,否则请评论您遇到的其他问题facing@trynalearn如果答案完全解决了您的问题,请接受,否则请评论您面临的其他问题