#react-native #react-native-android
#react-native
Вопрос:
Возможно ли использовать регистр переключения для проверки в React Native? Пожалуйста, подскажите мне правильный способ.Ниже приведен мой код
handleSubmit=()=>{
this.setState({ isLoading : true});
emailValid = /^([w.% -] )@([w-] .) ([w]{2,})$/i;
mobileValid = /^[0]?[789]d{9}$/;
if(this.state.first_name == ''){
this.setState({ isLoading : false});
Toast.show('Please enter first name',Toast.SHORT);
}
else if(this.state.mobile_no.length < 10){
this.setState({ isLoading : false});
Toast.show('Please enter at least 10 digits',Toast.SHORT);
}
else if(this.state.password == ''){
this.setState({ isLoading : false});
Toast.show('Please enter password',Toast.SHORT);
}
else if(this.state.password.length < 8){
this.setState({ isLoading : false});
Toast.show('Please enter strong password',Toast.SHORT);
}
else{
}
}
Ответ №1:
Если вы хотите использовать регистр переключения, вы можете поступить следующим образом. Пожалуйста, смотрите приведенный ниже код
handleSubmit = () => {
this.setState({ isLoading: true });
emailValid = /^([w.% -] )@([w-] .) ([w]{2,})$/i;
mobileValid = /^[0]?[789]d{9}$/;
switch (true) {
case this.state.first_name === '':
this.handleError('Please enter first name''); //call method to display toast
break;
case this.state.mobile_no.length < 10:
this.handleError('Please enter at least 10 digits');
break;
case this.state.password === '':
this.handleError('Please enter password');
break;
case this.state.password.length < 8:
this.handleError('Please enter strong password');
break;
default:
//otherwise perform your logic
break;
}
}
handleError=(message)=>{
this.setState({ isLoading: false });
Toast.show(message, Toast.SHORT);
}
Ответ №2:
Для меньшего количества кода я бы сделал это:
let message=''
this.state.first_name==='' ? message='Please enter name': null;
this.state.mobile_no.length < 10?message='Please enter at least 10 digits':null;
this.state.password === ''?message='Please enter password':null;
this.state.password.length < 8?message='Please enter strong password':null;
if(message){
this.setState({ isLoading : false});
Toast.show(message,Toast.SHORT);
}else{
//every validation is fine do whatever
}
Ответ №3:
Для меньшего количества кода и множества форм вы можете использовать validate.js. вы можете установить npm здесь:http://validatejs.org / и для использования используйте этот блог:https://medium.com/@pavsidhu/validating-forms-in-react-native-7adc625c49cf