React Native Securetextry不用在Android上工作



我正在尝试使用React-Native secureTextEntry隐藏我的密码并在注册期间确认密码字段。我使用textInput的自定义输入框组件。BELOW是我的代码,

                <InputBox 
                error={this.state.PwordError} 
                keyboardType={'default'} 
                onChangeText={Pword =>
                    this.setState({
                        Pword
                    })
                } 
                secureTextEntry={true}
                value={this.state.Pword} 
                pHolder={"Password"} 
                color={'white'} />
            <View style={styles.spacer} />
            <InputBox 
                error={this.state.CPwordError} 
                keyboardType={'default'} 
                onChangeText={CPword =>
                    this.setState({
                        CPword
                    })
                } 
                secureTextEntry={true}
                value={this.state.CPword} 
                pHolder={"Confirm Password"} 
                color={'white'} />

输入密码时,第一个文本框可以很好地显示为点,但是确认密码字段不起作用。有人知道为什么会发生这种情况吗?

这是上述代码

引用的输入框
            <TextInput 
                    underlineColorAndroid="transparent"
                    placeholder={this.props.pHolder} 
                    placeholderTextColor={this.props.color === 'white' ? 'black':"white" } 
                    {...this.props}
                    style={this.props.color == 'white' ? styles.ReginputStyle : styles.inputStyle} 
                    /> 

我正在使用

"react": "16.5.0",
"react-native": "0.57.1",

我能够通过从输入组件中删除keyboardType={'default'}代码来解决此问题。即使解决了问题,我也想知道为什么第一个secureTextEntry盒有效而另一个盒子不起作用,因为除了值外,两个框都相同。任何人都可以给出为什么会发生这种情况的理由,

谢谢。

multiline = {true}或keyboardType = {'可见password'}防止securetextentry工作。

keyboardType="default",它将起作用。它对我有用。

这项工作给我:

secureTextEntry works if you set autoCapitalize={'none'}.

https://github.com/facebook/react-native/issues/30148#issuecomment-748288773

我不知道为什么它在您的代码中发生,我尝试了您的代码,它在我的Android模拟器中工作正常。而不是这样,我在更新类型的阴影节点"颜色"时遇到了问题:androidTextInput。因为要花一些时间来评估您的

为此,除此之外,我已经删除了这条线。

import React, { Component } from "react";
import { View, Text, TouchableOpacity, TextInput } from "react-native";
export default class App extends Component {
  constructor(props) {
    super(props);
    this.state = { CPwordError: "", CPword: "", PwordError: "", Pword: "" };
  }
  render() {
    return (
      <View>
        <InputBox
          error={this.state.PwordError}
          keyboardType={"default"}
          onChangeText={Pword =>
            this.setState({
              Pword
            })
          }
          secureTextEntry={true}
          value={this.state.Pword}
          pHolder={"Password"}
          // color={"white"}
        />
        <InputBox
          error={this.state.CPwordError}
          keyboardType={"default"}
          onChangeText={CPword =>
            this.setState({
              CPword
            })
          }
          secureTextEntry={true}
          value={this.state.CPword}
          pHolder={"Confirm Password"}
          // color={"white"}
        />
      </View>
    );
  }
}
class InputBox extends Component {
  constructor(props) {
    super(props);
  }
  render() {
    return (
      <View>
        <TextInput
          underlineColorAndroid="transparent"
          placeholder={this.props.pHolder}
          placeholderTextColor={"black"}
          {...this.props}
          style={this.props.color == "white"}
        />
      </View>
    );
  }
}
keyboardType="default" Working Fine.
secureTextEntry={hidePassword}
  <TextInput
                        style={[styles.textInput]}
                        placeholder=""
                        secureTextEntry={hidePassword}
                        selectionColor={'#000'}
                        editable={true}
                        returnKeyType={'next'}
                        keyboardType="default"
                        autoFocus={false}
                        autoCapitalize={'characters'}
                        placeholderTextColor="rgb(153,153,153)"
                        onChangeText={(text) => this.onCurrentPassTextChange(text)}
                      >{currentPassword}</TextInput>

您可以在再次运行后停止连接应用程序。问题可用于处理测试道具

相关内容

  • 没有找到相关文章