[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 ...
随机推荐
- 关于C#控制台传递参数和接收参数
前言: 写了这么久程序,今天才知道的一个基础知识点,就是程序入口 static void Main(string[] args) 里的args参数是什么意思 ?惭愧... 需求: 点击一个button ...
- unity3d游戏物体跟着鼠标方向移动
效果:当点击鼠标左键时,游戏对象会朝鼠标点击的方向移动,类似魔兽争霸一样. 思路:把鼠标的坐标转化成世界坐标(鼠标默认是屏幕坐标),然后当点击鼠标时,物体将朝着鼠标的世界坐标方向移动. 如果你看到这的 ...
- WindowsPhone8SDK重装后设计器加载异常的处理办法
Close all running instances of Visual Studio 2012 start cmd.exe (as admin/elevated) cd /d %windir%\i ...
- 各种好用的工具之一 ---- PNGGauntlet
1.PNGGauntlet实际上是一个图形前端,压缩图像的过程中使用的是PNGOUT, OptiPNG, 和DeflOpt这三款软件. 软件官网:http://pnggauntlet.com/ 可自行 ...
- Vim cscope
/********************************************************************** * Vim cscope * 说明: * 之前使用Vim ...
- eclipse中相同代码的高亮显示
在eclipse中 当选中一串字符时,让其他相同字符代码都高亮显示,操作如下: windows-> preferences-> java-> Editor-> Mark Occ ...
- Ext入门学习系列(二)弹出窗体
第二章 弹出窗体 上节学习了Ext的环境搭建和最基本的一个操作——弹出对话框,作为一个引子,本节讲述如何弹出一个新窗体,从实例讲解Ext的基本运行原理. 一.Ext的窗体长什么样? 先来看看几个效果, ...
- 为枚举类型添加说明 zt
enum Orientation { [DescriptionAttribute("东")] East, [DescriptionAttribute("南")] ...
- [原]Links
[Date]2014-04-19 [Author]wintys (wintys@gmail.com) http://wintys.cnblogs.com [Content]: 1.Android 1. ...
- Deep learning:三十四(用NN实现数据的降维)
数据降维的重要性就不必说了,而用NN(神经网络)来对数据进行大量的降维是从2006开始的,这起源于2006年science上的一篇文章:reducing the dimensionality of d ...