React-Native做一個文本輸入框組件

來源:互聯網
上載者:User

標籤:

我又回來啦!

由於最近一直在做公司的項目,而且比較急。如今項目已經迭代到第三期,可以緩一緩了。。。

今天在公司裡聽前端的說,這個項目本來是用React-Native做的(去年10月份),但是做到一半發現坑太多,就中途放棄了,於是讓我們android和iOS重新開發。。。

作為非常喜歡這個技術的我來說,表示相當的不服。

於是我打算利用閑暇時間做一個一模一樣的出來,反正介面我都有(嘻嘻)

說實話,最近一直再用android做開發,而且時間也不寬裕,react-native有點生疏了。

好了,廢話不多說,今天在做登入介面的時候,我發現,登入註冊的文字框樣式都是一個樣的,如果一個一個的寫,就會顯得有些麻煩了,於是我就簡單的封裝了一下TextInput這一個組件

 

就是我放到登入介面的效果啦。

 

代碼:

 1 import React, { Component } from ‘react‘; 2  3 import { 4     Text, 5     TextInput, 6     View, 7     PropTypes, 8     StyleSheet, 9     ToastAndroid10 } from ‘react-native‘11 12 class TextInputLogin extends Component {13     static propTypes = {14         name: React.PropTypes.string,15         txtHide: React.PropTypes.string,16         ispassword: React.PropTypes.bool17       }18 19     static defaultProps = {20         name: ‘名稱‘,21         txtHide: ‘內容‘,22         ispassword: false,23     }24       constructor (props) {25         super (props)26         this.state = {27           txtValue: "",28         }29     }30     render () {31         var { style, name, txtHide, ispassword } = this.props32         return(33             <View style={styles.container,style}>34                 <View style={styles.txtBorder}>35                     <Text style={styles.txtName}>{name}</Text>36                     <TextInput37                         underlineColorAndroid = {‘transparent‘}38                         style={styles.textInput}39                         multiline={false}40                         placeholder={txtHide}41                         password={ispassword} 42                         onChangeText={(text) => {43                             this.setState({44                                 txtValue: text45                             })46                         }}47                         value={this.state.txtValue}48                     />49                 </View>50             </View>51         )52     }53     getValue () {54         return this.state.txtValue55     }56 }57 58 const styles = StyleSheet.create({59     container: {60         flex: 1,61         alignItems: ‘center‘,62         flexDirection: ‘row‘63     },64     txtBorder: {65         height: 50,66         flex: 1,67         borderWidth: 1,68         borderColor: ‘#51A7F9‘,69         marginLeft: 50,70         marginRight: 50,71         borderRadius: 25,72         flexDirection: ‘row‘73     },74     txtName: {75         height: 20,76         width: 40,77         marginLeft: 20,78         fontSize: 15,79         marginTop: 15,80         color: ‘#51A7F9‘,81         marginRight: 10,82         fontSize: 1483     },84     textInput: {85         height: 50,86         width: 20087     }88 })89 90 module.exports = TextInputLogin;

 

React-Native做一個文本輸入框組件

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.