RN入门基础3:JSX动态布局之自定义属性state
一、介绍
一个组件有两种属性控制:props(控制静态数据)
和state(控制动态数据)
。
props用
于需要静态数据(它在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变)。
state用
于需要改变的数据。
一般来在constructor中初始化state
,然后在需要修改时调用setState
方法。
二、举例
假如我们需要制作一段不停闪烁的文字。
分析:
1.文字内容本身在组件创建时就已经指定好了,所以文字内容应该是一个prop
。
2.而文字的显示或隐藏的状态则是随着时间变化的,因此这一状态应该写到state
中。
代码:
1.自定义组件 Blink ,文字显示内容用props指定
<Blink text='I love to blink' />
2.自定义组件 Blink ,constructor中初始化state
显示文字,在setInterval中每1000毫秒让state取反
class Blink extends Component{constructor(props){super(props);this.state = {showtext:true};// 每1000毫秒对showText状态做一次取反操作setInterval( ()=> { this.setState({showtext:!this.state.showtext}); },500 );}render(){// 根据当前showText的值决定是否显示text内容let display = this.state.showtext?this.props.text:'';return(<Text>{display}</Text>)}
}
3.主入口
export default class myprojectname extends Component<Props> {render() {return (<View><Blink text='I love to blink' /><Blink text='Yes blinking is so great' /><Blink text='Why did they ever take this out of HTML' /><Blink text='Look at me look at me look at me' /></View>);}
}// 注意,这里用引号括起来的'myprojectname'必须和你init创建的项目名一致
AppRegistry.registerComponent('myprojectname', () => myprojectname);
4.效果
RN入门基础3:JSX动态布局之自定义属性state相关推荐
- 移动web开发入门—基础知识、自适应布局、调试
之前没做过移动端web开发,最近接手的一个小项目是做微信公众号,需要考虑手机适配.UI给出的设计稿是一般是基于iphone手机做的(15年之后是基于ipone6),我们的UI是基于iphone6来做的 ...
- RN入门基础1:第一个RN项目-hello World
1.新建工程,用webStorm创建一个react native项目 首先打开package.json, 因为webstorm会创建rn项目时会下载最新的react-native,所以运行程序到模拟器 ...
- CG插画入门教程之人体动态基础与面部画法分析
CG插画入门教程之人体动态基础与面部画法分析第一章:人体动态的画法分析与技巧讲解视频地址:https://www.qingwk.com/course/detail/10 章节1:人体动态的画法分析与技 ...
- 安卓APP_ Fragment(1)—— Fragment概念、基础用法、动态变换、管理栈
摘自:安卓APP_ Fragment(1)-- Fragment概念.基础用法.动态变换.管理栈 作者:丶PURSUING 发布时间: 2021-04-15 23:32:31 网址:https://b ...
- Android入门教程:ConstraintLayout约束布局
原文首发自掘金芦苇APP团队,转载到自己小号上再发一遍~ 翻译By Leelion6.关于 ConstraintLayout 的文章其实已经不少了,不过看到这篇文章写的很有趣,以及在翻译的过程中,感受 ...
- HTML入门基础教程相关知识
HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...
- java SE(一)——入门基础
java入门基础 一.java语言概述 1.java背景知识 2.为什么用java?(java的特性) 4.java能做什么? 4.java技术体系 5.总结 二.java环境搭建 1jdk简介 2 ...
- Python培训入门基础知识学什么?
Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...
- JSP WEB开发入门基础到高手进阶教程002
JSP WEB开发入门基础到高手进阶教程 -------开发入门 JSP与微软的Active Server Pages 兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript. ...
最新文章
- [JavaWeb基础] 007.Struts2的配置和简单使用
- 【转】Linux世界驰骋——文件系统和设备管理
- pyqt5从子目录加载qrc文件_PyQt5快速上手基础篇10-QSettings用法
- Yacc 与 Lex 快速入门(词法分析和语法分析)
- nginx源码分析—内存池结构ngx_pool_t及内存管理(精辟)
- 如果城里人拿100万买你的农村宅基地,你愿意吗?
- int main() 与 void main()
- dz论坛服务器技术支持,服务器更换 升级 dz论坛首页 dz其他页面打开为空白解决方法...
- php excel header,【IT专家】PHP生成excel,方法一-header生成
- java数据库配置_java--数据库(文件配置连接,自定义连接池)
- servlet技术是否过时
- 软启动器说明书_软启动器怎么接线?一张电路图一张实物图供大家参考
- Core Animation 文档翻译 (第二篇)—核心动画基础要素
- android屏幕投影到pc,安卓手机怎么把屏幕投影到电脑上
- 动画七、动画的PropertyValuesHolder与Keyframe
- 教你用Python做个打飞机小游戏超详细教程
- 基于深度强化学习的电子商务平台动态定价
- 如何把汉字转成五笔与拼音(首字母或全部字母)
- LeetCode.黑白方格画
- CToolBar的使用总结
热门文章
- 【汇智学堂】-div+css布局十二(商品列表图文展示)
- win7 蓝牙4.0 ble驱动_恩智浦发布行业领先的2x2 Wi-Fi 6 +蓝牙解决方案,彻底改变游戏、音频、工业和物联网市场...
- 智能运维 | 我们不一样!告诉你百度云如何做智能流量异常检测
- 正则系列2: re.search用法
- 中国AI崛起,独角兽深兰科技亮相3E北京国际人工智能大会
- 2018_9_8 模拟题
- AVR单片机开发6——AVR单片机串口Proteus调试注意事项
- 台式计算机连接,台式电脑连接网络步骤
- 神经网络(4)---神经网络是如何帮助我们学习复杂的nonlinear hypotheses
- 关于安卓 dp与px的理解