Сброс тега выбора после отправки

Я хочу сбросить тип выбора после нажатия кнопки отправки:

const types = ['text', 'color', 'date', 'email', 'tel', 'number'];

onSelect = ({ target }) => {
    const value = target.value;
    this.setState(curr => ({
      tempInput: { ...curr.tempInput, inputType: value }
    }));
};


<select onChange = {this.onSelect} required>
    <option value=''>
        Please select a type
    </option>
    {types.map(type => (
        <option key = {type} value = {type}>
            {type}
        </option>
     ))}
</select>

это означает, что у меня будет кнопка «отправить», когда я нажму на нее, я сброслю состояние, и я хочу, чтобы выбранный тег снова изменился на «Пожалуйста, выберите тип», но я понятия не имею, как это сделать, был бы признателен за помощь, Благодарность!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
21
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать что-то вроде этого:

 const types = ['text', 'color', 'date', 'email', 'tel', 'number'];



onSelect = ({ target }) => {
    const value = target.value;
    this.setState(curr => ({
      tempInput: { ...curr.tempInput, inputType: value }
    }));
};

onSubmit = () => {
    // Do some submit logic
    this.setState(curr => ({
        tempInput: { ...curr.tempInput, inputType: '' }
    })
}


<select onChange = {this.onSelect} required>
    <option value='' selected = {!this.state.tempInput.inputType}>
        Please select a type
    </option>
    {types.map(type => (
        <option key = {type} value = {type} selected = {this.state.tempInput.inputType === type}>
            {type}
        </option>
    ))}
</select>

устанавливать undefined вручную - плохая практика, пожалуйста, не делайте этого

Alexander 16.02.2019 16:13
Ответ принят как подходящий

У вас может быть дополнительная переменная состояния, которая управляет текущим выбранным value из select и сбрасывает его на ''.

Пример

class App extends React.Component {
  state = {
    types: ["text", "color", "date", "email", "tel", "number"],
    selectedType: ""
  };

  onSelect = event => {
    this.setState({
      selectedType: event.target.value
    });
  };

  onReset = () => {
    this.setState({ selectedType: "" });
  };

  render() {
    const { types, selectedType } = this.state;

    return (
      <div>
        <select onChange = {this.onSelect} required value = {selectedType}>
          <option value = "">Please select a type</option>
          {types.map(type => (
            <option key = {type} value = {type}>
              {type}
            </option>
          ))}
        </select>
        <button onClick = {this.onReset}>Reset</button>
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById("root"));
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

<div id = "root"></div>

Другие вопросы по теме