RN正、反向传值,组件输出

很简单的一个小Demo,绿色的是输出的一个组件,目标把’爱好‘从父组件传给子组件,然后把’name‘从子组件传给父组件
父组件给子组件传值可以使用props,子组件传值给父组件可以使用事件,这里不多说直接上代码,
子组件代码:
//获取屏幕尺寸
var Dimensions = require('Dimensions');
var {width, height} = Dimensions.get("window"); export default class CustomView extends Component {
static defaultProps = {
age: 18,
love: '',
name:'',
onclick:null
} constructor(props) {
super(props);
this.state = {
//state创建
name: '张三'
}
}
_click(name){
// 反向传值
this.props.onclick(name);
} render() {
return (
<View style={styles.wrapper}>
{/*修改state*/}
<TouchableOpacity onPress={()=>{this.setState({"name": "李四"})}}>
<Text>{this.state.name},你好,年龄{this.props.age},爱好{this.props.love}</Text>
</TouchableOpacity>
{/*点击事件*/}
<TouchableOpacity onPress={()=>this._click(this.state.name)} style={{marginTop: 20}}>
<Text>点击我把name输出出去</Text>
</TouchableOpacity>
</View>
)
}
} const styles = StyleSheet.create({
wrapper: {
width: width,
height: 200,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: '#00ff00'
}
});
// 把当前的Component输出
module.exports = CustomView;
父组件的代码只写重点,style自己组织
customViewClick(name) {
alert(name)
}
render() {
return (
<View style={styles.wrapper}>
<TouchableOpacity onPress={()=>this.click()}>
<View style={styles.textStyle}>
<Text>1243</Text>
</View>
</TouchableOpacity>
<CustomView
//正向props传值
love="跑步、画画"
//反向传值
onclick={(name) => this.customViewClick(name)}
/>
</View>
)
}
RN正、反向传值,组件输出的更多相关文章
- iOS 代理反向传值
在上篇博客 iOS代理协议 中,侧重解析了委托代理协议的概念等,本文将侧重于它们在开发中的应用. 假如我们有一个需求如下:界面A上面有一个button.一个label.从界面A跳转到界面B,在界面B的 ...
- iOS-代理反向传值<转>
在上篇博客 iOS代理协议 中,侧重解析了委托代理协议的概念等,本文将侧重于它们在开发中的应用. 假如我们有一个需求如下:界面A上面有一个button.一个label.从界面A跳转到界面B,在界面B的 ...
- RN中的常用组件-----图片
1.RN中的常用组件-----图片 本地图片: <Image source={require('../src/assets/x.jpg')}/> 本地图片可以无需指定尺寸(因为导入/打包 ...
- 使用block进行界面之间的反向传值
目标:在两个独立的控制器的界面之间进行反向传值 关键技术:block 代码编写及运行环境:Xcode6.4 / 模拟器8.4 语言:Objective-C 注:使用纯代码实现,不使用xib/story ...
- iOS Block界面反向传值
在上篇博客 <iOS Block简介> 中,侧重解析了 iOS Block的概念等,本文将侧重于它们在开发中的应用. Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C ...
- 代理和block反向传值
代理传值: // SendViewController.h #import <UIKit/UIKit.h> @protocol SendInFor <NSObject> -(v ...
- block 反向传值回调
/** * block 反向传值回调 */ //在第二个控制器中 // (1)声明block,在基类中已写好 // (2)写好传值方法 //(1) typedef void (^Return ...
- [ios][swift]使用swift闭包进行viewcontroller反向传值
闭包参考:http://c.biancheng.net/cpp/html/2285.html 闭包详解 传值参考:http://www.tuicool.com/articles/vy2uUz Sw ...
- OC10_代理反向传值
// // ProtectedDelegate.h // OC10_代理反向传值 // // Created by zhangxueming on 15/6/24. // Copyright (c) ...
随机推荐
- [PHP] 09 - PHP 7 & Tricky
新特征列表: 序号 内容 1 PHP 标量类型与返回值类型声明 2 PHP NULL 合并运算符 3 PHP 太空船运算符(组合比较符) 4 PHP 常量数组 5 PHP 匿名类 6 PHP Clos ...
- [React] 16 - Topic: Mixins & Higher-Order Components
到底是个什么东东,待学习中... Ref: https://www.cnblogs.com/wonyun/p/5930333.html
- Ubuntu Linux 解决 bash ./ 没有那个文件或目录 的方法
Ubuntu Linux 解决 bash ./ 没有那个文件或目录 的方法 经常在ubuntu 64位下运行 ./xxx 会跳出来说没有这个文件或者目录,但是ls看又有这个文件,很是奇怪. 其实原因很 ...
- PHP-CLI环境变量的设置和读取
http://luokr.com/p/30 通常我们在维护PHP线上项目的时候,为了隔离配置和代码,会使用fastcgi_param的形式将环境变量定义在Nginx的配置文件中(Apache可以使用S ...
- 同一个tomcat使用不同http端口配置多个web项目
1.复制 conf/server.xml下的 复制粘贴新的一个Service元素下的所有内容,并修改name为Catalina2,<Service name="Catalina&quo ...
- 在PHP系统里连接MySQL 数据访问,+ + + + + 数据删除
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- IIS 使用域账户访问SQL 需要配置
打开应用程序的 Web.config 文件并添加以下元素: <authentication mode="Windows" /> <identity imper ...
- vue中的iviewUI导出1W条列表数据每次只导出2000条的逻辑
导出弹窗的html <template> <Modal v-model="exportModal" width=400 :closable="false ...
- ubuntu下能ping通ssh不通的解决思路
1.首先看看是否能ping通,如果ping不通可能就要考虑网线.路由等问题了: 2.看防火墙是否关闭,sshd是否开启 3.ssh -v 服务器的ip号,根据提示寻找可能的问题: 我的问题在这一步之后 ...
- CCPC-Wannafly Winter Camp Day4 Div1 - 夺宝奇兵 - [简单思维题]
题目链接:https://zhixincode.com/contest/18/problem/A?problem_id=259 题目描述 wls正在玩一个寻宝游戏. 宝藏一共有 $n$ 种,都藏在一个 ...