У меня есть панель поиска React, и я пытаюсь предотвратить отправку формы или ее повторную визуализацию, если пользователь нажимает клавишу ввода.
Я прочитал о событиях response syntheti c и применил этот logi c как для обработчика obSubmit для элемента формы, так и для элемента ввода, ни один из них не работает при применении индивидуально к каждому элементу или при применении к обоим, и я не уверен, почему.
Expected behavior: If a user clicks enter nothing will happen, no clearing of the input text or form submission
Current behavior: User clicks enter, text field is cleared and form is submitted triggering a re render
Вот снимок моего текущего Компонента:
const handleSubmit = event => {
event.preventDefault();
};
return (
<form onSubmit={handleSubmit}>
<StyledInput className={"inputWithIcon"}>
<Input
type="text"
value={text}
onChange={handleChange}
placeholder="Search"
onSubmit={e => {
e.preventDefault();
}}
/>
<div className="left-icon">
<svg viewBox="0 0 24 24" width="36px" height="36px">
...
</svg>
</div>
<button className="right-icon" onClick={clearInput}>
<svg width="24pt" height="24pt" viewBox="0 0 24 24" version="1.1">
...
</svg>
</button>
</StyledInput>
</form>
)
И CodeSandbox, демонстрирующий проблему:
![Edit dreamy-nightingale-x8uwe](https://codesandbox.io/static/img/play-codesandbox.svg)