【发布时间】:2021-04-18 06:27:03
【问题描述】:
我正在尝试创建自己的自定义密码屏幕,但不幸的是它无法正常工作。当我尝试按下任何按钮(数字和后退按钮)时,它们都不起作用。
我已尝试在控制台中登录密码变量,以查看在按下数字时是否记录了数字,但由于某种原因,除了 0 之外的所有数字都被记录了。
const[password,setPassword]=useState(['','','',''])
let numbers =[
{id:1},
{id:2},
{id:3},
{id:4},
{id:5},
{id:6},
{id:7},
{id:8},
{id:9},
{id:0},
]
const onPressNumber =(num)=>{
let tempCode = password;
for(var i=0;i<tempCode.length;i++){
if(tempCode[i]==''){
tempCode[i]=num;
break;
}else{
continue;
}
}
setPassword(tempCode)
}
const onPressBack =(num)=>{
let tempCode = password;
for(var i=tempCode.length-1;i>=0;i--){
if(tempCode[i]!=''){
tempCode[i]='';
break;
}else{
continue;
}
}
setPassword(tempCode)
}
return(
<View>
{
password.map(p=>{
let style =p != ''?
{width:15,
height:15,
borderRadius:15,
backgroundColor:'blue'}
:
{width:15,
height:15,
borderRadius:15,
backgroundColor:'white'}
return <View style={style}></View>
})
}
</View>
<View style={{alignItems:'center',justifyContent:'center'}}>
<View style={styles.numbersContainer}>
{numbers.map(num=>{
return(
<TouchableOpacity
style={styles.number}
key={num.id}
onPress={()=>{onPressNumber(num.id)}}>
<Text style={styles.numberText}>{num.id}</Text>
</TouchableOpacity>
)
})}
</View>
</View>
{password != ''?
<View style={styles.button}>
<TouchableOpacity onPress={()=>onPressBack()}>
<Ionicons name="arrow-back" size={30} color="black" />
</TouchableOpacity>
</View>
:null}
【问题讨论】:
标签: react-native