我正在使用Firebase auth,我想添加一个复选框,它将在密码文本框中显示密码,并在再次单击时隐藏密码
如何传递复选框值以显示/隐藏密码?
这是我的登录页面代码:
export default class Login extends Component {
constructor(props) {
super(props)
this.state = {
email: '',
password: '',
response: ''
}
this.signUp = this.signUp.bind(this)
this.login = this.login.bind(this)
}
async signUp() {
try {
await firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password)
this.setState({
response: 'Account Created!'
})
setTimeout(() => {
this.props.navigator.push({
id: 'App'
})
}, 500)
} catch (error) {
this.setState({
response: error.toString()
})
}
}
async login() {
try {
await firebase.auth().signInWithEmailAndPassword(this.state.email, this.state.password)
this.setState({
response: 'user login in'
})
setTimeout(() => {
this.props.navigator.push({
id: 'App'
})
})
} catch (error) {
this.setState({
response: error.toString()
})
}
}
render() {
return (
<View style={styles.container}>
<View style={styles.containerInputes}>
<TextInput
placeholderTextColor="gray"
placeholder="Email"
style={styles.inputText}
onChangeText={(email) => this.setState({ email })}
/>
<TextInput
placeholderTextColor="gray"
placeholder="Password"
style={styles.inputText}
password={true}
secureTextEntry={true}
onChangeText={(password) => this.setState({ password })}
/>
</View>
<TouchableHighlight
onPress={this.login}
style={[styles.loginButton, styles.button]}
>
<Text
style={styles.textButton}
>Login</Text>
</TouchableHighlight>
<TouchableHighlight
onPress={this.signUp}
style={[styles.loginButton, styles.button]}
>
<Text
style={styles.textButton}
>Signup</Text>
</TouchableHighlight>
</View>
)
}
}
8条答案
按热度按时间xriantvc1#
1aaf6o9v2#
一种方法是设置一个状态变量,比如showPassword,并在复选框被选中时切换它。
注意:如果您设置了密码prop,则此操作无效!!!
因此,只需使用常规的
TextInput
并利用secureTextEntry
属性。ar7v8xwq3#
这是我的做法
我对textInput使用了本机基
这将更改单击时的secureTextEntry
mtb9vblg4#
如果我说错了,请纠正我,你是在问如何创建一个复选框吗?如果是这样,你有两个路线,要么使用网络上众多复选框之一的第三方库,要么你可以自己创建一个。
操作步骤:
1.下载一个图标库,如https://github.com/oblador/react-native-vector-icons,这样你就可以使用enter link description here中的两个材质设计图标,如checkbox-blank-outline和checkbox-marked,以模拟单击和未单击
1.使用这两个新图标,只需创建一个新的组件,它具有您想要的任何功能,并以您想要的方式处理所有状态。
基本实施:
1.具有控制是否选中的状态
1.使用onPress函数处理两种状态并触发相应的属性
iyfamqjs5#
这就是我简单方法,
我复选框和密码组件,
我州,
下面是我“显示密码"事件,
to94eoyn6#
enter image description here
[1]: https://i.stack.imgur.com/C7ist.png
oiopk7p57#
第一步:创建一个
useState
钩子来存储password
和secureTextEntry
的初始值:步骤2:根据条件更新状态:
5jdjgkvh8#