React Native文本输入

http://w3cschool.codecloud.net/react-native/react-native-text-input.html





通过键盘将文本输入到应用程序的一个基本的组件。属性提供几个功能的可配置性,比如自动校正,自动还原,占位符文本,和不同的键盘类型,如数字键盘。 最简单的一个用例是放置一个 TextInput,利用 onChangeText 事件来读取用户的输入。还有其他的事件可以使用,比如onSubmitEditing 和 onFocus。一个简单的例子:

<View>
TextInput
style={{height: 40,borderColor: 'gray'borderWidth:1}}
onChangeText{(text) => this.setState({input: text})}
/>
Text{'user input: ' + this.state.input}</
>

value 属性可以用于设置输入的值,其目的是让组件的状态更清晰,但是<TextInput> 所有的选项都是异步的,所以默认情况下它并不表现的像一个真正的控制组件。就像设置默认值一样设置 value 一次,但是你同样可以根据onChangeText 不断的改变它的值。如果你真的想要迫使组件一直都可以恢复到你设置的值,那么你可以设置成controlled={true}。

不是所有版本都支持 multiline 属性,然后有些属性只支持多行输入。

属性

autoCapitalizeenum(‘none’,‘sentences’,‘words’,‘characters’)

可以通知文本输入自动利用某些字符。

  • characters:所有字符,
  • words:每一个单词的首字母
  • sentences:每个句子的首字母(默认情况下)
  • none:不会自动使用任何东西

autoCorrect布尔型

如果值为假,禁用自动校正。默认值为真。

autoFocus布尔型

如果值为真,聚焦 componentDidMount 上的文本。默认值为假。

bufferDelay数值型

这个会帮助避免由于 JS 和原生文本输入之间的竞态条件而丢失字符。默认值应该是没问题的,但是如果你每一个按键都操作的非常缓慢,那么你可能想尝试增加这个。

clearButtonModeenum(‘never’,‘while-editing’,‘unless-editing’,‘always’)

清除按钮出现在文本视图右侧的时机

controlled布尔型

如果你真想要它表现成一个控制组件,你可以将它的值设置为真,但是按下按键,并且/或者缓慢打字,你可能会看到它闪烁,这取决于你如何处理 onChange 事件。

editable布尔型

如果值为假,文本是不可编辑的。默认值为真。

enablesReturnKeyAutomatically布尔型

如果值为真,当没有文本的时候键盘是不能返回键值的,当有文本的时候会自动返回。默认值为假。

keyboardTypeenum(‘default’,“ascii-capable”,‘numbers-and-punctuation’,‘url’,‘number-pad’,‘phone-pad’,‘name-phone-pad’,’email-address’,‘decimal-pad’,‘twitter’,‘web-search’,“numeric”)

决定打开哪种键盘,例如,数字键盘。

multiline布尔型

如果值为真,文本输入可以输入多行。默认值为假。

onBlur函数

当文本输入是模糊的,调用回调函数

onChange函数

当文本输入的文本发生变化时,调用回调函数

onChangeText函数

onEndEditing函数

onFocus函数

当输入的文本是聚焦状态时,调用回调函数

onSubmitEditing函数

password布尔型

如果值为真,文本输入框就成为一个密码区域。默认值为假。

placeholder字符串型

在文本输入之前字符串将被呈现出来

placeholderTextColor字符串型

占位符字符串的文本颜色

returnKeyTypeenum(‘default’,‘go’,‘google’,‘join’,‘next’,‘route’,‘search’,‘send’,‘yahoo’,‘done’,’emergency-call’)

决定返回键的样式

secureTextEntry布尔型

如果值为真,文本输入框就会使输入的文本变得模糊,以便于像密码这样敏感的文本保持安全。默认值为假。

selectionState文档选择状态

见 DocumentSelectionState.js,一些状态是为了维护一个文档的选择信息。

styleText#style

testID字符串型

用于端对端测试时定位视图。

value字符串型

文本输入的默认值

例子

'use strict';
var React= require('react-native');{
Text,TextInputViewStyleSheet
}ReactWithLabel.createClass({
render
: function()
return(
<View style={styleslabelContainer}>
label
>{thisprops}</Text>
</
>{children</View>
);
}
});
var TextEventsExample = React.createClass({
getInitialState:
function() {
return {
curText:
'<No Event>',
prevText:
};
},
updateText:
(text){
this.setState({
curText: text,
prevText: this.state.curText,
});
},
render:
(
<View>
<TextInput
autoCapitalize=
"none"
placeholder=
"Enter text to see events"
autoCorrect={
false}
onFocus={() => this.updateText(
'onFocus')}
onBlur={() => this.updateText(
'onBlur')}
onChange={(event) => this.updateText(
'onChange text: ' + event.nativeEvent.text
)}
onEndEditing={(event) => this.updateText(
'onEndEditing text: ' + event.nativeEvent.text
)}
onSubmitEditing={(event) => this.updateText(
'onSubmitEditing text: ' + event.nativeEvent.text
)}
style={styles.
default}
/
TexteventLabelstatecurText}{'\n'prevprevText})/Text>
</


}); styles create
page

paddingBottom
300},239)">
default
height
26

borderWidth
0.5

borderColor
'#0f0f0f'
padding
4

flex
1

fontSize
13
multiline
50
eventLabel

margin
312
labelContainer

flexDirection
'row'
marginVertical
2
label

width
80
justifyContent
'flex-end'
marginRight
10
paddingTop

exports
title '<TextInput>'description 'Single-line text inputs.'examples [
title
'Auto-focus'
render

TextInput autoFocus={true./>;'Auto-capitalize' label="none"

autoCapitalize
"none"

style
/>/WithLabel>
<WithLabel label=
"sentences">
<TextInput
autoCapitalize=

style={styles.
}
/
"words"
"characters"
/WithLabel>
</
'Auto-correct'"true" autoCorrect"false">
<TextInput autoCorrect={
} style={styles.} /'Keyboard types' keyboardTypes
'default''ascii-capable'
'numbers-and-punctuation''url''number-pad''phone-pad''name-phone-pad''email-address''decimal-pad''twitter''web-search''numeric']; examples keyboardTypesmap((type)=>
key
keyboardType
/WithLabel>
);
});
<View>{examples}</>;'Return key types' returnKeyTypes 'go'
'google''join''next''route''search''send''yahoo''done''emergency-call' returnKeyTypes
returnKeyType
'Enable return key automatically' enablesReturnKeyAutomatically'Secure text entry' secureTextEntry value"abc"'Event handling'() ReactElementTextEventsExample'Colored input text'
style
={[color'blue'}]}
value
"Blue"'green'"Green"/View>
);
}
},
{
title:
'Clear button mode' render: function {
(
<View>
<WithLabel label=
"never">
<TextInput
style={styles.
}
clearButtonMode=

/
"while editing"
"while-editing"
"unless editing"
"unless-editing"
"always"
];

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如果组件之中有复用的代码,需要重新创建一个父类,父类中存储公共代码,返回子类,同时把公用属性...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例如我们的 setState 函数式同步执行的,我们的事件处理直接绑定在了 dom 元素上,这些都跟 re...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom 转为真实 dom 进行挂载。其实函数是组件和类组件也是在这个基础上包裹了一层,一个是调...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使用,可能是不了解。我公司的项目就没有使用,但是在很多三方库中都有使用。本小节我们来学习下如果使用该...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接触 react 就一直使用 mobx 库,上手简单不复杂。
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc 端可以使用分页进行渲染数限制,在移动端可以使用下拉加载更多。但是对于大量的列表渲染,特别像有实时数据...
本小节开始前,我们先答复下一个同学的问题。上一小节发布后,有小伙伴后台来信问到:‘小编你只讲了类组件中怎么使用 ref,那在函数式组件中怎么使用呢?’。确实我们...
上一小节我们了解了固定高度的滚动列表实现,因为是固定高度所以容器总高度和每个元素的 size、offset 很容易得到,这种场景也适合我们常见的大部分场景,例如...
上一小节我们处理了 setState 的批量更新机制,但是我们有两个遗漏点,一个是源码中的 setState 可以传入函数,同时 setState 可以传入第二...
我们知道 react 进行页面渲染或者刷新的时候,会从根节点到子节点全部执行一遍,即使子组件中没有状态的改变,也会执行。这就造成了性能不必要的浪费。之前我们了解...
在平时工作中的某些场景下,你可能想在整个组件树中传递数据,但却不想手动地通过 props 属性在每一层传递属性,contextAPI 应用而生。
楼主最近入职新单位了,恰好新单位使用的技术栈是 react,因为之前一直进行的是 vue2/vue3 和小程序开发,对于这些技术栈实现机制也有一些了解,最少面试...
我们上一节了了解了函数式组件和类组件的处理方式,本质就是处理基于 babel 处理后的 type 类型,最后还是要处理虚拟 dom。本小节我们学习下组件的更新机...
前面几节我们学习了解了 react 的渲染机制和生命周期,本节我们正式进入基本面试必考的核心地带 -- diff 算法,了解如何优化和复用 dom 操作的,还有...
我们在之前已经学习过 react 生命周期,但是在 16 版本中 will 类的生命周期进行了废除,虽然依然可以用,但是需要加上 UNSAFE 开头,表示是不安...
上一小节我们学习了 react 中类组件的优化方式,对于 hooks 为主流的函数式编程,react 也提供了优化方式 memo 方法,本小节我们来了解下它的用...
开源不易,感谢你的支持,❤ star me if you like concent ^_^
hel-micro,模块联邦sdk化,免构建、热更新、工具链无关的微模块方案 ,欢迎关注与了解
本文主题围绕concent的setup和react的五把钩子来展开,既然提到了setup就离不开composition api这个关键词,准确的说setup是由...
ReactsetState的执行是异步还是同步官方文档是这么说的setState()doesnotalwaysimmediatelyupdatethecomponent.Itmaybatchordefertheupdateuntillater.Thismakesreadingthis.staterightaftercallingsetState()apotentialpitfall.Instead,usecom