Как обрабатывать пустое значение в полях формы реакции?

#javascript #reactjs #string #react-forms

#javascript #reactjs #строка #реагирующие формы

Вопрос:

Приведенный ниже код взят из reactjs.org , мой вопрос заключается в том, как обрабатывать пустое значение в приведенном ниже коде. Оповещение должно срабатывать только при наличии некоторого ввода от пользователя, оно не должно срабатывать, если ввод пустой

  class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = {value: ''};

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleChange(event) {
    this.setState({value: event.target.value});
  }

  handleSubmit(event) {
    alert('A name was submitted: '   this.state.value);
    event.preventDefault();
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Name:
          <input type="text" value={this.state.value} onChange={this.handleChange} />
        </label>
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

ReactDOM.render(
  <NameForm />,
  document.getElementById('root')
);
 

Ответ №1:

вы должны использовать оператор if в своей handleSubmit функции

   handleSubmit(event) {
   if(this.state.value){
    alert('A name was submitted: '   this.state.value);
   }
    event.preventDefault();
  } 
 

таким образом, если значение равно '' alert , оно не будет отображаться, если оно содержит какой-либо символ, например, 'm' он будет показывать предупреждение