《React-Native系列》30、 RN组件间通信
来源:互联网 发布:ktv伴奏软件 编辑:程序博客网 时间:2024/04/28 04:09
今天我们来说一说RN的组件之间的通信。
ReactNative的核心之一是他的组件化,组件化的核心是组件之间的通信。
组件是有层级来区分的,譬如:父组件 子组件。
我们先来讲解一个例子。
这个是我们要实现的功能,是一个表单的一部分,首先我们想到的是抽象组件。
组件有2种状态
- 选中状态,显示后面的课时
- 未选中状态,不显示后面的课时
组件的代码如下:
抽象出来的组件有一个状态机变量choosed,来控制是否有被选中,他的值是由外部props传入。
提供了一个onPress方法,控制选中状态的切换。其中这个方法是由props传递过来的。
定义了modifyChoosed方法来修改状态机变量choosed
好,组件封装完毕,那在表单页面我们怎么来使用这个组件呢。
1、import组件模块
2、使用组件
这里说明下
- 定义了CourseType组件的一个ref属性,ref="stu"
- 定义了title属性,
- 定义了choosed属性,他的值是由表单的type_stu状态机变量控制
- 定义了onPress方法,他的实现是:先获取choosed状态(取反),通过this.refs.stu.调用CourseType组件的modifyChoosed方法修改choosed状态,修改表单的type_stu状态机变量
好了,这样我们就实现了功能。
那我们总结下,这个是重点。
表单相当于父组件,CourseType相当于子组件。
子组件可以通过this.props 调用父组件的方法。
那父组件如何调用子组件的方法呢?
首先在子组件上定义一个ref=xxx,然后在父组件内通过this.refs.xxx.子组件Method()来调用。
0 0
- 《React-Native系列》30、 RN组件间通信
- 《React-Native系列》30、 RN组件间通信
- 《React-Native系列》15、 RN之可触摸组件
- 《React-Native系列》16、 RN组件之ListView
- 《React-Native系列》29、 RN组件之WebView
- 《React-Native系列》15、 RN之可触摸组件
- 《React-Native系列》16、 RN组件之ListView
- 《React-Native系列》29、 RN组件之WebView
- 《React-Native系列》16、 RN组件之ListView
- 《React-Native系列》16、 RN组件之ListView
- React Native(RN)-组件生命周期
- 《React-Native系列》28、 RN之AsyncStorage
- 《React-Native系列》 RN学习之NodeJS
- 《React-Native系列》28、 RN之AsyncStorage
- 《React-Native系列》 RN学习之NodeJS
- RN之React组件通信(五)
- 《React-Native系列》10、 RN组件之Text和TextInput以及注意要点
- 《React-Native系列》RN组件之Text和TextInput以及注意要点
- 字节流总结
- Oracle创建唯一索引遇到的问题(ORA-01452: 无法 CREATE UNIQUE INDEX; 找到重复的关键字)
- 《React-Native系列》29、 RN组件之WebView
- JavaEE程序员职业规划
- 《Reverse Engineering for Beginners》 - 第1章 代码模式 - 笔记(1.14)
- 《React-Native系列》30、 RN组件间通信
- 《React-Native系列》31、 Fetch发送POST请求的坑与解决方案
- 6、安装git,一台电脑使用两个git账号
- Leetcode Maximum Product Subarray
- 连接远程服务
- 各种流的使用步骤
- PAT基础编程 5-5 表格输出 (5分)
- 分享8款最新超酷HTML5/CSS3特效及源码
- vs2008出现链接错误:fatal error LNK1000: Internal error during IncrBuildImage