Я хочу сбросить тип выбора после нажатия кнопки отправки:
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>
это означает, что у меня будет кнопка «отправить», когда я нажму на нее, я сброслю состояние, и я хочу, чтобы выбранный тег снова изменился на «Пожалуйста, выберите тип», но я понятия не имею, как это сделать, был бы признателен за помощь, Благодарность!





Вы можете использовать что-то вроде этого:
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>
У вас может быть дополнительная переменная состояния, которая управляет текущим выбранным 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>
устанавливать undefined вручную - плохая практика, пожалуйста, не делайте этого