Reactjs 从另一个react组件调用react组件内的方法
我是ReactJS的新手,遇到了一个问题,我有两个组件,我将它们称为comp1和comp2。Comp1呈现comp2,comp2中有一个方法 如果在comp1中单击按钮,它将调用comp1中的单击处理程序,我希望它调用comp2中的方法,但我不断收到错误Reactjs 从另一个react组件调用react组件内的方法,reactjs,Reactjs,我是ReactJS的新手,遇到了一个问题,我有两个组件,我将它们称为comp1和comp2。Comp1呈现comp2,comp2中有一个方法 如果在comp1中单击按钮,它将调用comp1中的单击处理程序,我希望它调用comp2中的方法,但我不断收到错误this.comp1.myFunc不是一个函数 下面是代码 在comp1中 class Comp1 extends React.Component { testClick() { this.comp2Comp.my
this.comp1.myFunc不是一个函数
下面是代码
在comp1中
class Comp1 extends React.Component
{
testClick()
{
this.comp2Comp.myFunc();
}
render() {
const postCommentDisabledState = this.state.newComment.length === 0;
this.comp2Comp = <Comp2 />
return (
<div>
<button onClick={this.testClick}>Test</button>
{this.comp2Comp}
</div>
)
}
}
class Comp1扩展了React.Component
{
testClick()
{
this.comp2Comp.myFunc();
}
render(){
const postCommentDisabledState=this.state.newComment.length==0;
此.comp2Comp=
返回(
试验
{this.comp2Comp}
)
}
}
在comp2中
class Comp2 extends React.Component
{
myFunc()
{
alert("Testing MyFunc");
}
render()
{
return (
<div>comp2</div>
)
}
}
类Comp2扩展了React.Component
{
myFunc()
{
警报(“测试MyFunc”);
}
render()
{
返回(
comp2
)
}
}
我想做的事情可能吗?如果不可能的话,我将如何做我想实现的事情
最终的结果是,comp2在其状态中有一些东西,当按下comp1中的按钮时,我可以从comp2中获取我需要的数据,供comp1使用 由于Comp2是一个子组件,您应该将其状态和
myFunc
移动到Comp1。通常,在React中,您希望使用单向数据绑定,因此所有状态都应该“提升”到父上下文。见:
另外,需要注意的是,渲染函数不应该有任何副作用,比如在组件上设置属性。请参阅:因为Comp2是一个子组件,所以应该将其状态和
myFunc
移动到Comp1。通常,在React中,您希望使用单向数据绑定,因此所有状态都应该“提升”到父上下文。见:
另外,需要注意的是,渲染函数不应该有任何副作用,比如在组件上设置属性。请参阅:我认为这可能是答案,我正在尝试这样做,以便comp2可以重复使用,func始终可用-也许我需要重新考虑我的组件。谢谢你的帮助,我认为这可能是答案,我正在努力使它可以重复使用comp2和func将始终可用-也许我需要重新考虑我的组件。谢谢你的帮助