React Native入门(五)之使用输入框TextInput,按钮Button搭建登录界面

前言

这篇文章来了解一下输入框组件TextInput和按钮Button的使用,并结合之前的Flexbox布局来搭建一个简单的登录界面!

废话不多说,先上效果图!
React Native入门(五)之使用输入框TextInput,按钮Button搭建登录界面_第1张图片

输入框组件TextInput

TextInput是一个允许用户输入文本的基础组件。在Android中对应的就是EditText控件。

属性

  • autoCapitalize 控制TextInput是否要自动将特定字符切换为大写。它的取值有以下4个enum:
    • 'characters': 所有的字符。
    • 'words': 每个单词的第一个字符。
    • 'sentences': 每句话的第一个字符(默认)。
    • 'none': 不自动切换任何字符为大写。
  • autoCorrect 如果为false,会关闭拼写自动修正。默认值是true。
  • autoFocus如果为true,在componentDidMount后会获得焦点。默认值为false。
  • caretHidden如果为true,则隐藏光标。默认值为false
  • defaultValue提供一个文本框中的初始值。当用户开始输入的时候,值就可以改变。
  • editable如果为false,文本框是不可编辑的。默认值为true。
  • maxLength 限制文本框中最多的字符数。使用这个属性而不用JS逻辑去实现,可以避免闪烁的现象。
  • multiline如果为true,文本框中可以输入多行文字。默认值为false。
    multiline=false时,为元素的某一个边添加边框样式(例如:borderBottomColorborderLeftWidth等)将不会生效。为了能够实现效果你可以使用一个View来包裹TextInput。
  • placeholder 如果没有任何文字输入,会显示此字符串。(同Android中的hint)
  • placeholderTextColor占位字符串显示的文字颜色。
  • secureTextEntry 如果为true,文本框会遮住之前输入的文字,这样类似密码之类的敏感文字可以更加安全。默认值为false。

下边两个属性呢,在Android环境下使用,为了统一,可以与iOS端一致!

  • numberOfLines 设置输入框的行数。当multiline设置为true时使用它,可以占据对应的行数。
  • underlineColorAndroid 文本框的下划线颜色(译注:如果要去掉文本框的边框,请将此属性设为透明transparent)。
    使用:underlineColorAndroid={'transparent'}

还有需要注意的地方就是:
①TextInput在安卓上默认有一个底边框,同时会有一些padding。如果要想使其看起来和iOS上尽量一致,则需要设置padding: 0
②在安卓上如果设置multiline = {true},文本默认会垂直居中,可设置textAlignVertical: 'top'样式来使其居顶显示。

下边是属性值为function()的几个属性!
先说两个最常用的onChangeTextonSubmitEditing
onChangeText:属性接受一个函数,而此函数会在文本变化时被调用,改变后的文字内容会作为参数传递。
这个属性,在我们要读取用户输入,得到输入框内容的时候,会用到!(注意,从TextInput里取值这就是目前唯一的做法!),具体的做法就是使用onChangeText写入state,然后从this.state中取出值。,下边的登录界面示例中也会有,具体可以看下边示例!

onSubmitEditing:会在文本被提交后(用户按下软键盘上的提交键)调用。需要注意的是,如果multiline={true},此属性不可用。

其他的属性,这里就不一一列举了,用到的时候可以查看官方文档。

按钮Button

在RN v0.46版本,添加了

你可能感兴趣的:(React,Native入门,React,Native入门)