你可能需要在子组件的父组件状态下修改某些属性。尽管没有直接的方式可以添加引用, 就像你想要实现父子沟通一样, 你仍然可以间接实现。要实现子级与父级之间的通信, 你可以将Prop函数发送给子级组件。此功能应在组件中执行所需的任何操作, 例如更改某些属性的状态。
考虑以下父组件:
class Parent extends React.Component {constructor(props) {super(props)// Bind the this context to the handler functionthis.handler = this.handler.bind(this);
// Set some statethis.state = {messageShown: false};
}// This method will be sent to the child componenthandler() {this.setState({messageShown: true});
}// Render the child component and set the action property with the handler as valuerender() {return <
Child action={this.handler} />
}}
该父组件的状态具有messageShown属性, 出于某些原因, 我们希望从Child组件更改该属性。在父级中, 我们将渲染Child组件, 并将在父级中声明的处理函数作为属性(在本例中为action)发送。
在这种情况下, Child组件非常简单, 它将绘制一个按钮, 单击该按钮时将触发操作Prop(在父组件中发送):
class Child extends React.Component {render() {return (<
div>
{/* The button will execute the handler function set by the parent component */}<
Button onClick={this.props.action} />
<
/div>
)}}
这样, 你可以轻松地从子组件执行父函数。
【如何在React中从子组件更新父状态】编码愉快!
推荐阅读
- 如何通过jQuery UI Touch Punch在移动(触摸)设备上使用jQuery UI功能
- 使用(或不使用)jQuery在你的网站中实现智能应用横幅
- 「首度揭秘」大规模HPC生产环境 IO 特征
- 是的你没看错,HTTP3来了
- Redis 系列redis 学习,redis 的哨兵模式详解和实战
- 在CentOS 8上安装 KVM / QEMU 进行虚拟化
- XGBoost feature importance特征重要性-实战印第安人糖尿病数据集(附代码)
- OpenHarmony ACE源码解析之JavaScript运行环境初始
- 如何打造 iOS 短视频的极致丝滑体验,阿里工程师用了这些方案