import React from "react";
import { Field, Form } from "react-final-form";
export function LogInDialog(props: { open: boolean; onClose: () => void }) {
const onSubmit = vals => {
alert(JSON.stringify(vals));
};
console.log("logindialog");
return (
<Form
key="unique_key_0"
onSubmit={onSubmit}
render={({ handleSubmit, form, submitting, pristine, values }) => (
<form onSubmit={handleSubmit} key="unique_key_1" id="unique_id_1">
<Field
key="unique_key_2"
id="unique_id_2"
name="email"
component={({ input: { onChange, value }, label }) => (
<input
key="unique_key_3"
id="unique_id_3"
type="text"
value={value}
onChange={onChange}
/>
)}
></Field>
</form>
)}
/>
);
}
Вход теряет фокус после каждого нажатия клавиши. В devtools я вижу, что HTML form
создается каждый раз заново (он мигает розовым). Однако сам компонент React проходит рендеринг только один раз.
Есть похожие вопросы, но все они предлагают использовать уникальные ключи. Такое решение, похоже, здесь не работает.
Почему ввод снова и снова теряет фокус? Как мне это исправить?