如何设置RN密码= {true}?

时间:2016-01-10 02:48:49

标签: android ios react-native

RN / Android如何处理安全密码输入有很多问题。

以下是3个问题:

  1. You can't style the color(总是#000
  2. 你不能改变字体(它总是等宽的...呃)
  3. 子弹点抖动取决于输入是否聚焦。 Here是一个用精美的照片解释它的问题。
  4. 总体而言,所有这三个问题都使我的应用程序中的密码输入完全可怕,并且基本上无法使用(我的应用程序输入的背景为黑色)。

    似乎所有的变通方法都很长且涉及,所以我想做一个输入的伪版本,只使用回调,正则表达式和change事件来替换值●

    有没有人有任何想法如何实现这一目标?看似棘手的部分是因为输入的值必须来自value={}的值,然后当他们键入另一个键时,它将包含一堆子弹。我现在已经考虑了很长一段时间了,我很难过......

    如果onKeyPress适用于iOS和Android,我认为这很容易解决,因为这样你就可以在调用onChangeText之前捕获密钥并修改状态。

    另一个棘手的部分是,如果他们使用选择来编辑中间的某个地方

    'use strict';
    
    import React, {
      TextInput
    } from 'react-native';
    
    export default class PasswordInput extends React.Component {
      state = {
        value: null,
        maskedValue: null
      };
    
      static propTypes = {
        onChange: React.PropTypes.func.isRequired
      };
    
      _handleChange = (text) => {
        this.setState({
          value: text,
          maskedValue: text
        }, () => {
          this.props.onChange(text);
        });
      };
    
      render() {
        return (
          <TextInput
            {...this.props}
            value={this.state.maskedValue}
            onChangeText={(text) => this._handleChange(text)}
          />
        );
      };
    }
    

0 个答案:

没有答案