Когда вы вводите текст в поле, фокус теряется. Зачем?

Если убрать метку реквизита, то проблема решена. Но нужен ярлык

<SimpleItem
  label={{ text: "Your Address" }}
  dataField="surname"
  editorOptions={{
    value: formEdit.surname,
    onValueChanged: ({ value }) => {
      addChange("surname", value);
    },
    valueChangeEvent: "keyup"
  }}
/>;

Онлайн демо: https://codesandbox.io/s/de-form-ezmmg

1
stiv 13 Фев 2020 в 11:57

2 ответа

Лучший ответ

Я заметил, что при использовании Label как дочернего по отношению к SimpleItem (вместо prop) ввод не теряет фокус на событие keyup (я пытался копаться в документах, но не мог найти причину почему так будет)

<SimpleItem
  dataField="surname"
  editorOptions={{
    value: formEdit.surname,
    onValueChanged: ({ value }) => {
      addChange("surname", value);
    },
    valueChangeEvent: "keyup"
  }}
>
     <Label text="Your Address" />
</SimpleItem>

Код Песочница

2
Ido 17 Фев 2020 в 12:05

Хорошо, как то, что обсуждает Джейси, ваша область повторного рендеринга всякий раз, когда вы используете keyup. Я пытался изменить событие, чтобы размыть. Попробуй это. Я надеюсь, что это помогает.

enter image description here

0
Mart Macion 13 Фев 2020 в 09:37