[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 ...
随机推荐
- Notepad++加上xml格式化的功能
工作中需要用代码创建一个XML文件,创建完发现XML内容都处在同一行,导致非常不容易查看清楚XML代码.于是习惯性地用 Notepad++查看,想用它来对XML代码格式化一下. 于是找到了TextFX ...
- Session简介
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的工作机制并且对在Java ...
- Bsie(鄙视IE)
http://www.bootcss.com/p/bsie/ 欢迎,这是bsie项目主页. 简介 bsie弥补了Bootstrap对IE6的不兼容.Bootstrap是 twitter.com 推出的 ...
- 使用BusyBox制作Linux根文件系统
STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录/dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin ...
- DataTable 分页
#region DataTable 分页 /// <summary> /// Datatable 分页 /// </summary> /// <param name=&q ...
- Eclipse(非J2EE版本)配置Extjs环境以及安装部署Tomcat
Eclipse(非J2EE版本)配置Extjs环境(Spket) 1. 安装spket插件,帮助->安装新软件->http://www.agpad.com/update. 2. 设置Spk ...
- CI支持各种文件上传-文件类型(Linux + window)
$mimes = array( 'hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'c ...
- php支持rewrite 时创建.htaccess文件
1.win+r 快捷键 运行中输入cmd 2.进入dos界面:输入copy con .htaccess 3.回车后可以输入内容,再次回车即可产生文件
- 你可能没听过的 Java 8 中的 10 个特性
你以前听到的谈论关于Java8的所有都是围绕lambda表达式. 但它仅仅是Java8的一部分. Java 8 有许多新特性—一些强大的新类和语法, 还有其他的从一开始就应该具有的东西. 我将要介绍我 ...
- 说说单节点集群里安装hive、3\5节点集群里安装hive的诡异区别
这几天,无意之间,被这件事情给迷惑,不解!先暂时贴于此,以后再解决! 详细问题如下: 在hive的安装目录下(我这里是 /home/hadoop/app/hive-1.2.1),hive的安装目录的l ...