React 组件通信
2019-01-08 16:55
19 查看
父子组通信
父传子
- 1.在调用子组件的时候,定义一个属性
- 2.子组件里面this.props.属性
// F <Test title="页面标题"></Test> //C <p>{this.props.title}</p>
//F myrun = ()=>{ alert("我是父组件的方法") } <Test title="页面标题" run={this.myrun}></Test> //C <button onClick={this.props.myrun}>点击</button>
// F 将父组件全部给子组件 this test = () => { alert("test") } <Test title="页面标题" run={this.myrun} all={this}></Test> //C 子组件调用父组件的test方法 <button onClick={this.props.all.test}>点击</button>
也可以通过props子组件传父组件
//F getChildMsg = (result)=>{ this.setState({ msg:result // result 子组件信息 }) alert(result) } //C <button onClick={this.props.all.getChildMsg.bind(this,"子组件信息")}>点击</button>
说明:父传子,不仅可以给子组件传值,还可以给子组件传递方法,甚至可以把整个父组件传递给子组件,也可以让子组件给父组件传值
子传父
父组件主动获取子组件的数据
- 1.父组件调用子组件的时候指定ref的值
- 2.父组件通过this.refs.header 获取子组件整个实例(组件加载完)
<Header ref="header" /> this.refs.header
props
// 父 fatherFun = (data)=>{ this.setState({ number:data // 12345 }) } {this.state.number} <Children onChild={this.fatherFun}></Children> // 子 handleChild = ()=>{ this.props.onChild(12345) } render() { return ( <div> <button onClick={this.handleChild}>子组件按钮</button> </div> ) }
实际开发中,有时候组件之间数据通讯复杂,会用全局变量和redux等等;全局变量就不说了,之后有时间写一篇关于redux的
如有问题,望斧正,也欢迎交流,共同脱坑
相关文章推荐
- react组件之间的通信
- react native组件通信方式
- React.js组件通信所有方法
- React总结(二)-- 组件之间的通信
- React组件之间的通信
- React 各种组件关系通信
- React中父子组件间的通信问题
- react数据单向流、受控组件、子父组件通信
- React源码分析6 -- 组件通信,refs,key,ReactDOM
- 【React源码分析】组件通信、refs、key和ReactDOM
- [转] React 中组件间通信的几种方式
- React-Native :组件之间的通信-1
- ReactJS组件之间通信
- [ReactNative] 03--ReactNative的生命周期 & render的Diff算法 & 组件之间的通信
- React框架解释及组件间通信
- React.js之组件通信(基础)
- ReactJs组件间通信的方法
- React中父子组件间的通信问题
- React的跨级组件通信
- React 组件基本使用(3) ---父子组件之间的通信