React|React refs和onRefs的使用
【React|React refs和onRefs的使用】父组件代码块
constructor(props){
super(props);
this.refBox = React.createRef()
this.state={
message:"i am from parent"
content:"1111"
}
}
handleChange = ()=>{
this.setState({
message:"changed by parent"
})
}
render(){
const = { message,content } = this.state;
//parentMethods 中可以放变量,方法,对应的到子组件中可以直接使用
const parentMethods = {
msg:message,
handleChange:this.handleChange
}
return(
)
}
}
子组件代码块
@Form.create()
export default class Child extends React.Component {
constructor(props) {
super(props);
this.state = {
childMsg:"I am from child"
};
}
render() {
//msg,handleChange两个参数就是从父组件中获取的
const { msg,handleChange,form:{getFieldDecorator}} = this.props
return (handleChange()}>{msg}//显示的内容就是 "i am from parent"
{getFieldDecorator("name",{
initialValue:null
})(
)}
);
}
}
父组件向子组件传值主要依靠父组件中parentMethods将方法和变量传递到子组件中 父组件获取子组件的form表单数据并且可以操作 方式一:在父组件使用子组件的地方添加ref={this.refBox}然后在constructor中添加声明
image.png
然后就可以在父组件中拿到子组件关于form表单的变量内容
this.refBox.current,如果不清楚的话,可以在使用之前先console.log(this.refBox.current),就可以看到里面的具体内容如下图所示:
image.png
方式二:
this.refBox=ref } />
方式三:
三种方式写法不一样,使用都是一样的通过this.×××.current改变子组件中的form表单
父子组件间的通信:
{this.child = ref;
}} />
子组件获取父组件中得方法或者变量,还是按照最上面第一张图中得注释,定义一个parentMethods来传递
父组件获取子组件state定义的变量
this.child.state.childMsg ,console.log(this.child)如下图所示:
image.png
我一般会把方式二和父子组件得通信混淆,写法上一个是ref一个是onRef,大家可以自己尝试一下,写这篇文章也是为了让自己对react有更深入的了解,谢谢。
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理
- 烦恼和幸福