react Native DeviceEventEmitter

这种方式不用关系到是父子组件 非父子组件

其实对应的就是reactjs的全局事件  react native使用全局事件不需要引入其他的库  react native自带DeviceEventEmitter模块

用法:

import {

DeviceEventEmitter

} from 'react-native';

发送  在你业务逻辑的代码里面写上 DeviceEventEmitter.emit('showTab',{active:true});

接收  componentDidMount(){

this.listener = RCTDeviceEventEmitter.addListener('通知名称',(value)=>{

// 接受到通知后的处理

});

}

componentWillUnmount(){

// 移除 一定要写

this.listener.remove();

}

另外context使用上下文可以让子组件直接访问祖先的数据或函数,无需从祖先组件一层层地传递数据到子组件中。

让子组件拿到父亲组件的数据

varMyContainer = React.createClass({

getInitialState:function(){return{

curItem:'item1'}

},

childContextTypes: {

curItem: React.PropTypes.any,

changeItem: React.PropTypes.any

},

getChildContext:function(){return{

curItem:this.state.curItem,

changeItem:this.changeItem

}

},

changeItem:function(item){this.setState({

curItem: item

});

},

render:function(){return(

)

}

});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容