《React-Native系列》4、表單介面程式碼編寫
今天就開始投入到RN專案了,做後端出生,寫Android和iOS確實有點勉強,不過還是要把這段經歷記錄下來。
要實現的功能介面如下:
這個是最簡單的Form表單,第一步實現介面吧,不管點選效果,不管篩選控制元件...
思路:
我把這幾類控制元件分為了3類:
1、帶頭像的一行抽取成一個元件
2、帶輸入框 TextInput的抽象成一個元件
3、帶選擇項的抽取成一個元件
首頁直接引用這3個元件
首頁程式碼:
/** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, TextInput } from 'react-native'; import TextInputWidget from './TextInputWidget.js'; import TextTipsWidget from './TextTipsWidget'; import TextImageWidget from './TextImageWidget.js'; class Demo extends Component { constructor(props){ super(props); } render() { return ( <View style={styles.container}> <TextImageWidget title='* 頭像' /> <TextInputWidget title='* 暱稱' placeholder='請輸使用您的真實姓名' /> <TextTipsWidget title='* 性別' tips='請選擇' onPress={this.showSex.bind(this)}/> <TextTipsWidget title='* 生日' tips='請選擇'/> <View style={{height:3}}/> <TextTipsWidget title=' 學歷' tips='請選擇'/> <TextInputWidget title=' 院校' placeholder='請填寫畢業/就讀院校' /> <TextInputWidget title=' 專業' placeholder='請填寫您的專業' /> <TextTipsWidget title='* 身份' tips='請選擇您的身份'/> <TextTipsWidget title='* 教齡' tips='請選擇您的教齡'/> </View> ); } //todo 彈出選擇 性別控制元件 showSex(){ alert('1'); } } const styles = StyleSheet.create({ container: { flex: 1, marginTop:20, //去除狀態列圖示 backgroundColor: 'gray', }, }); AppRegistry.registerComponent('Demo', () => Demo);
帶頭像的元件:TextTipsWidget
import React, { Component } from 'react'; var { StyleSheet, View, Text, Image, TextInput, PixelRatio, Dimensions } = require('react-native') var screenWidth = Dimensions.get('window').width; export default class TextImageWidget extends Component{ constructor(props) { super(props); } _renderRow() { return ( <View style={styles.rowContainer} > <View style={styles.row}> <Text numberOfLines={1} style={styles.textInputTitle} > {this.props.title} </Text> <View style={styles.textImage}> <Image source={require('./img/defailHead.png')} style={styles.image} /> </View> <View style={styles.rightArrow}> <Image source={require('./img/rightArrow.png')} /> </View> </View> </View> ); } render() { return this._renderRow(); } } const styles = StyleSheet.create({ rowContainer: { backgroundColor: '#FFF', width:screenWidth, }, row: { flexDirection: 'row', height: 44, alignItems: 'center', marginRight: 15, marginLeft: 15, //paddingTop:15, borderBottomWidth: 0.5 / PixelRatio.get(), borderColor:'gray',//需要標色 }, textInputTitle: { width: 80, fontSize: 13, //color: '#333', //backgroundColor: 'red', }, textImage: { flex: 1, height: 44,// @todo should be changed if underlined justifyContent:'flex-end', flexDirection: 'row', }, image:{ width:38, height:38, backgroundColor:'gray', borderRadius: 19, }, rightArrow:{ paddingLeft:10, //backgroundColor:'red', } });
由於另外兩個元件和TextImageWidget類似,所以就不貼原始碼了。
這個Demo介面寫的很粗糙,只是實現了功能,還有需要優化的地方:
1、* 號的處理
2、元件封裝的不徹底,通用性不夠
大家有什麼好建議,可以留言。
相關推薦
《React-Native系列》4、表單介面程式碼編寫
今天就開始投入到RN專案了,做後端出生,寫Android和iOS確實有點勉強,不過還是要把這段經歷記錄下來。 要實現的功能介面如下: 這個是最簡單的Form表單,第一步實現介面吧,不管點選效果,不管篩選控制元件... 思路: 我把這幾類控制元件分為了3類: 1、帶頭
react+antd系列之Form表單(2):格式限制驗證
格式限制 antd中表單的功能很多,下面就為大家整理了一下antd中常用的幾種表單輸入格式驗證: 1. 輸入框不能為空限制,如下: {getFieldDecorator('name', { rules: [{ require
react+antd系列之Form表單(1):新增與刪除
在用antd的時候,我們如果要對錶單進行新增和刪除該怎麼弄呢,如下: import { connect } from 'dva'; import { Form, Input, Button } from 'antd'; import styles from './eg1.css';
react-native系列(4)入門篇:在VSCode中配置ESLint(程式碼檢測工具)
ESLint是一套javascript程式碼檢測工具。要記住,程式碼也是寫給人看的,所以一定要注意程式碼的編寫規範。ESLint可以根據自己設定的規則實現對程式碼的檢測,從而規範了程式碼的風格。本篇內容主要介紹如何在VSCode中使用ESLint。 ESLint的官網地址是:https://
Angular2學習筆記.4、表單相關,雙向資料繫結,HeroForm
開始 本次我們將會學會如何用Angular建立表單、two-way data binding(雙向資料繫結)、change tracking(檢測變化)、validation(驗證) 和 error handling(錯誤處理)等功能以及ngModel、ngC
《React-Native系列》3、RN與native交互之Callback、Promise
pan resolv str string callback 多次調用 modules 函數 等待 接著上一篇《React-Native系列》RN與native交互與數據傳遞,我們接下來研究另外的兩種RN與Native交互的機制 一、Callback機制 首先Calllba
html-4, form 表單 輸入、傳文件、單選、多選、下拉菜單、文本描述、重置、submit、按鈕限制輸入
part row man head 密碼 文本 inpu set 跳轉 <!-- form HTTP協議 action:提交的服務器網址 method:get(默認)| post(應用:
《React-Native系列》24、 結合Demo學習Redux框架
8月的最後一天了,那就打響最後一炮吧! 我們介紹了Flux框架,我們打算在接下來的專案裡使用Redux框架,這兩天簡單學習了下Redux。打算結合一個Demo來講解。 還是先來說說概念吧。 Redux 三個基本原則 單一資料來源 整個應用的 state 被儲存在一棵 obj
《React-Native系列》26、 ReactNative實現圖片上傳功能
在檢視ReactNative的官方文件的時候,你會發現其實Fackbook是沒有提供圖片上傳功能的。如果我們的專案裡需要使用圖片上傳(用JS 實現圖片上傳),那我們有沒有什麼辦法呢?解決方案:利用FormData物件,你可以使用一系列的鍵值對來模擬一個完整的表單,然後使用XM
《React-Native系列》15、 RN之可觸控元件
今天,我們來看下ReactNative提供的可觸控元件。 分別為:TouchableHighlight、TouchableNativeFeedback、TouchableOpacity、TouchableWithoutFeedback。 TouchableWithoutFe
【REACT NATIVE 系列教程之十一】外掛的安裝、使用與更新(示例:REACT-NATIVE-TAB-NAVIGATOR)
本篇主要來詳細介紹如何安裝、升級外掛及講解一個react-native-tab-navigator的示例。本文舉例使用的外掛:react-native-tab-navigator ,選項卡形式的導航1. 通過 https://www.npmjs.com 找到我們想使用的外掛, 搜尋:react-native
《React-Native系列》21、 解決RN在Android下不支援gif問題
由於RN在Android平臺上不支援gif格式的圖片,今天介紹下我們是怎麼處理這個問題的。 先來看看我們需要實現的效果,這是一張gif圖片,當我們列表上拉載入下一頁的時候需要使用這個效果,如下圖: 我們的解決方案是:將gif切成15張png的圖片,暫且命名為loadin
《React-Native系列》40、 ReactNative之bundle檔案瘦身
【背景】目前,我們的app中採用Native+RN的混合模式開發,每個由RN開發的頁面,頁面的載入都是載入的一個Bundle檔案,而一個Bundle檔案的大小為500-600Kb。在沒有內建bundle檔案的情況下,使用者想要使用所有由RN開發的功能,需要下載 n* 500
《React-Native系列》33、 鍵盤遮擋問題處理
最近在專案中,使用TextInput元件的時候,發現鍵盤彈出的時候,遮蓋了表單。諮詢了下做iOS的同學,他們的處理是計算鍵盤的高度和當前輸入域的位置,將介面向上移動一段距離。那在ReactNative中是否也可以有類似的處理方法呢?答案是肯定的,我們使用ScrollVIew的
3、React Native實戰——實現QQ的登入介面
今天記錄的是使用React Native實現QQ的登入介面,如果不瞭解React Native,請看React Native中文網站:http://reactnative.cn/ 下面是一張手機QQ的登入介面截圖: 下面是用React Native實現的類似上圖的登入效果
React 事件對象、鍵盤事件、表單事件、ref獲取dom節點、react實現類似Vue雙向數據綁定
nbsp 產生 影響 () button stat tin cto 屬性 1、案例實現代碼 import React, { Component } from ‘react‘; /** * 事件對象、鍵盤事件、表單事件、ref獲取dom節點、react實現類似Vue雙向
vue.js基礎知識篇(3):計算屬性、表單控件綁定
multi option || list text 知識 基礎 unset select標簽 第四章:計算屬性 為了避免過多的邏輯造成模板的臃腫不堪,可使用計算屬性來簡化邏輯。 1.什麽是計算屬性 <!DOCTYPE html><html lang="e
4.新增表單相關的屬性
ext require orm nodelist node ogr 位置 data 以及 新增表單相關的屬性 1、可以對input(type=text)、select、textarea與button元素指定autofocus屬性。它以指定屬性的方式讓元素在打開頁面時自動
第3天:CSS浮動、定位、表格、表單總結
特性 input 器) 用戶 style line ie瀏覽器 練習 doctype 今天學的是浮動、定位、表格、表單等內容,這些是CSS中最容易混淆的知識,有許多小技巧在寫代碼過程中需要註意。下面是主要知識點: 一、float浮動1、塊元素在一行顯示2、內聯元素支持寬高3
React Native 系列(八)
ted scott 核心 es2017 nts .org 分享 動畫 tintcolor 前言 本系列是基於React Native版本號0.44.3寫的。我們都知道,一個App不可能只有一個不變的界面,而是通過多個界面間的跳轉來呈現不同的內容。那麽這篇文章將介紹RN中的導