反应原生不建议使用 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】:

您的&lt;TextInput&gt; 上似乎缺少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

在自定义组件中反应原生访问 refs

如何更改 TextInput 上的光标位置? (反应原生)

反应原生 TextInput 离开我的屏幕

反应原生 textInput scrollView android

如何将属性“OnChangeText”上的 TextInput 的“val”转换为 int。反应原生