[React Native] Complete the Notes view
In this final React Native lesson of the series we will finalize the Notes view component and squash a few bugs in the code.
import firebase from 'firebase';
import React from 'react';
import {
View,
StyleSheet,
Text,
ListView,
TextInput,
TouchableHighlight
} from 'react-native';
import Badge from './Badge';
import Divdir from './Helpers/divdir'; var styles = StyleSheet.create({
container: {
flex: ,
flexDirection: 'column'
},
buttonText: {
fontSize: ,
color: 'white'
},
button: {
height: ,
backgroundColor: '#48BBEC',
flex: ,
alignItems: 'center',
justifyContent: 'center'
},
searchInput: {
height: ,
padding: ,
fontSize: ,
color: '#111',
flex:
},
rowContainer: {
padding:
},
footerContainer: {
backgroundColor: '#E3E3E3',
alignItems: 'center',
flexDirection: 'row'
}
}); // In the video there are a couple errors, fixed them so it would build.
class Notes extends React.Component{
constructor(props){
super(props);
this.ds = new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2});
this.notes = [];
this.state = {
note: '',
dataSource: null,
};
// Initialize Firebase
var config = {
apiKey: "AIzaSyAs8HBqV2X6VIOE5MnDwENz1nRffNkUbiU",
authDomain: "github-saver-9a338.firebaseapp.com",
databaseURL: "https://github-saver-9a338.firebaseio.com",
storageBucket: "github-saver-9a338.appspot.com",
};
firebase.initializeApp(config);
}
componentDidMount(){
firebase.database().ref('notes/').on('child_added', (data)=>{
this.notes.push(data.val());
})
}
handleChange(e){
this.setState({
note: e.nativeEvent.text
})
}
handleSubmit(){
let note = this.state.note;
firebase.database().ref('notes/').push({
note,
timestamp: +new Date()
})
this.setState({
note: ''
})
}
render(){ var notesHtml = this.notes && this.notes.map((note, index)=>{
return (
<View>
<Text key={index}>{note.note}</Text>
<Divdir />
</View>
);
}); return (
<View style={styles.container}>
<Badge userInfo={this.props.userInfo}/>
<View>
{notesHtml}
</View>
<View style={styles.footerContainer}>
<TextInput
style={styles.searchInput}
value={this.state.note}
onChange={this.handleChange.bind(this)}
placeholder="New Note" />
<TouchableHighlight
style={styles.button}
onPress={this.handleSubmit.bind(this)}
underlayColor="#88D4F5">
<Text style={styles.buttonText}>Submit</Text>
</TouchableHighlight>
</View>
</View>
)
}
}; Notes.propTypes = {
userInfo: React.PropTypes.object.isRequired
}; module.exports = Notes;
[React Native] Complete the Notes view的更多相关文章
- React Native学习(二)之View
React Native组件解析(二)之View 0.JSX React的核心机制之一就是虚拟DOM:可以在内存中创建的虚拟DOM元素.React利用虚拟DOM来减少对实际DOM的操作从而提升性能. ...
- React Native学习-measure测量view的宽高值
measure()测量是根据view标签中的ref属性,使用方法如下: measureWatermarkerImage(){ this.refs.watermarkerImage.measure((a ...
- React Native实践之携程Moles框架
编者:本文来自携程框架研发部高级经理魏晓军在第二期[携程技术微分享]上的分享,以下为整理后的文字实录.视频回放可点击这里.关注携程技术中心微信公号ctriptech,可获知更多微分享课程信息. 因为支 ...
- 【转】【React Native开发】
[React Native开发]React Native控件之ListView组件讲解以及最齐全实例(19) [React Native开发]React Native控件之Touchable*系列组 ...
- React Native专题
转载注明出处:地址:http://www.lcode.org本文出自:[江清清的技术专栏]本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶 ...
- React Native之携程Moles框架
因为支持用javascript开发原生应用,React Native一推出就受到不少公司热捧,各家都跃跃欲试.但有一个痛点是,在移动端,我们是否有必要开发多套程序:iOS.Android和H5?本次将 ...
- React Native专题-江清清
本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 刚创建的React Native交流8群:533435865 欢迎各位大牛, ...
- React Native 常用插件案例
(二).基础入门: 1.React Native For Android环境配置以及第一个实例 2.React Native开发IDE安装及配置 3.React Native应用设备运行(Runnin ...
- React Native简史
诞生 React Native 诞生于 2013 年的 Facebook 内部黑客马拉松(hackathon): In the essence of Facebook’s hacker culture ...
随机推荐
- mysql 读取硬盘数据
innodb 的最小管理单位是页 innodb的最小申请单位是区,一个区 1M,内含64个页,每个页16K ,即 64*16K=1M, 考虑到硬盘局部性,每次读取4个区,即读4M的数据加载至内存 线性 ...
- service name和SID的区别
数据库名(DB_NAME).实例名(Instance_name).以及操作系统环境变量(ORACLE_SID) 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instan ...
- 《C#并行编程高级教程》第9章 异步编程模型 笔记
这个章节我个人感觉意义不大,使用现有的APM(异步编程模型)和EAP(基于时间的异步模型)就很够用了,针对WPF和WinForm其实还有一些专门用于UI更新的类. 但是出于完整性,还是将一下怎么使用. ...
- HDU 4389 X mod f(x)
题意:求[A,B]内有多少个数,满足x % f(x) == 0. 解法:数位DP.转化为ans = solve(b) - solve(a - 1).设dp[i][sum][mod][r]表示长度为i, ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.3.1
Let $A=A_1\oplus A_2$. Show that (1). $W(A)$ is the convex hull of $W(A_1)$ and $W(A_2)$; i.e., the ...
- NGINX(六)扩展
前言 nginx模块化设计, 添加扩展模块变得容易, 下面开发一个非常简单的扩展模块, 实现返回http请求的头部内容, 配置标记是ping_pong, 配置在NGX_HTTP_LOC_CONF中. ...
- python 遇到 syntaxerror: non-ascii character '/xd6' in file 我 教你解决 (python问题)(转)
遇到标题上的问题,按照我的解决广方案来吧 ===================================== (一) 用记事本创建一个文件ChineseTest.py,默认ANSI: s = ...
- Git 基础 - Git Aliases
$ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global ...
- Puppet学习:pp文件权限问题
由于内网的Puppet还是在测试中,所以对文件权限等内容未做过多关注. 今天报了错误: Error: Could not retrieve catalog from remote server: Er ...
- MSP430开学的序章
吐槽一下最近在搞什么~~~,星期三在等板子来,自己的板子,激动呀!!F5系列的板子,激动呀!结果板子到星期五才拿到!开始的时候,感觉自己没多大问题,结果一上手就问题百出,因为没仔细看用户手册,导致光盘 ...