Как мне выполнить проверки, используя регистр переключения или другим способом, при меньшем количестве кода в React native?

#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