2016-08-01 21 views
1

TextInputの表示パスワード機能をネイティブ0.30.0に実装したいと思います。 passwordHidden状態変数を変更するTextInputの隣に「目」ボタンを実装しました。ここに私のコードは次のとおりです、ネイティブiOS TextInputに反応します:secureTextEntryスイッチのフォントを切り替える

... 
    <View style={[styles.passwordWrapper, styles.textInputBorder]}> 
     <TextInput 
      autoCapitalize={'none'} 
      autoCorrect={false} 
      clearButtonMode={'while-editing'} 
      style={[styles.textInput, styles.passwordInput]} 
      onChangeText={(password) => this.onPasswordChange(password)} 
      value={this.state.password} 
      secureTextEntry={this.state.passwordHidden} 
      multiline={false} 
      placeholder={Strings.password} 
      underlineColorAndroid={Colors.surfacePrimary} 
     /> 
     <TouchableOpacity style={styles.showPasswordButton} onPress={this.onPressShowPassword}> 
      <EntypoIcon color={Colors.surfacePrimary} name={this.state.passwordHidden ? 'eye' : 'eye-with-line'} size={20} /> 
     </TouchableOpacity> 
     </View> 
... 
onPressShowPassword: function() { 
var previousState = this.state.passwordHidden; 
requestAnimationFrame(() => { 
    this.setState({ 
    passwordHidden: !previousState, 
    }); 
}); 

}

ここでパスワードTextInputがボタンをクリックする前にどのように見えるかです。 enter image description here クリックした後: enter image description here 3回目にタップしてタイプを開始すると、パスワードはすぐにクリアされます。私は、アプリケーション全体でもfontFamilyをスタイルで変更していません。

誰でも何が起こっているのか説明できますか?または、その厄介な行動をどのように克服するか。

+1

を呼び出すことです。これはオープンなReactネイティブバグですが、問題は途中で終了したようですが、https://github.com/facebook/react-native/issues/5859 – jevakallio

+1

さらに、クリアされている値も報告されているようですhttps://github.com/facebook/react-native/issues/9148 – jevakallio

答えて

1

ユーザがパスワードの表示/非表示をクリックすると、TextInputからフォーカスが削除されます。これを行う1つの方法は、TextInputにref(たとえばref="password")を追加してから、this.refs.password.blur()

関連する問題