反应原生不建议使用 TextInput 发送电子邮件
Posted
技术标签:
【中文标题】反应原生不建议使用 TextInput 发送电子邮件【英文标题】:react native not suggesting email with TextInput 【发布时间】:2020-01-17 15:10:51 【问题描述】:React Native 不会在登录表单上提示新用户常用的电子邮件地址。 LoginForm.js 和 Email.js 是功能性的,但它不提供当前用户常用的电子邮件地址。我没有使用 firebase、google 签名或 facebook 签名,例如类似的库,所以我需要一些内置的 react native 功能,以便让我的用户更轻松地登录和注册。
LoginForm.js
....
<Email
placeholder=i18n.t("i18n_email")
value=this.state.email
onChangeText=email => this.validate( email )
autoCorrect=true
autoCapitalize="none"
autoCompleteType="email"/>
....
在 Email.js 上
import React from "react";
import Text, TextInput, View, StyleSheet from "react-native";
const styles = StyleSheet.create (
inputStyle:
zIndex: 1,
position: 'absolute',
,
labelStyle:
fontSize: 18,
paddingLeft: 20
,
containerStyle:
height: 50,
flex: 1,
flexDirection: "row",
alignItems: "center",
width: '100%'
);
const Email = (
value,
onChangeText,
placeholder,
keyboardType,
autoCompleteType,
autoCapitalize
) =>
const inputStyle, labelStyle, containerStyle = styles;
return (
<View style=containerStyle>
<TextInput
placeholder=placeholder
value=value
onChangeText=onChangeText
autoCapitalize=autoCapitalize
autoCompleteType=autoCompleteType
style=styles.inputStyle
/>
</View>
);
;
export Email ;
【问题讨论】:
【参考方案1】:您的<TextInput>
上似乎缺少textContentType 属性。
【讨论】:
感谢您的回复,我添加了textContentType='emailAddress'
不幸的是它不受影响。除了我的平台是android。
我添加了 textContentType='emailAddress',但没有显示任何区别。现在,上面的第一个字母也是大写的。我在ios平台【参考方案2】:
我使用此代码。它适用于 iOS 和 Android。
<TextInput
testID="LoginEmailAddress"
textContentType="emailAddress"
keyboardType="email-address"
style=commonStyles.textInput
/>
【讨论】:
以上是关于反应原生不建议使用 TextInput 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
使用 editable=true 和 dataDetectorTypes 反应原生 TextInput