RN正、反向传值,组件输出
2024-09-01 07:11:05
很简单的一个小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>
)
}
最新文章
- WWW读取安卓外部音乐文件
- 自动化运维,远程交互从服务器A上ssh到服务器B上,然后执行服务器B上的命令。
- NSString 和NSData 转换
- 在JAVA中ArrayList如何保证线程安全
- 问题解决——warning C4503 超出修饰名的长度,名称被截断
- .NET设计模式系列文章 from TerryLee
- linux 安装svn最新版本
- Object-C - 类的定义
- 企业级应用框架(五)IOC容器在框架中的应用
- java 对list中对象按属性排序
- iOS进阶推荐的书目
- tp框架实现文件上传
- 在docker container中运行docker-compose
- linux下高可用LVS搭建及配置方法
- 我们常说的 CAS 自旋锁是什么
- Feature Extractor[SENet]
- P1558 色板游戏 线段树+二进制状压
- Css学习(4)
- 学习第一天-JAVA
- NOIP2018考前抱佛脚——图论基础复习