Реагирует ли изменяемое контролируемое входное значение, даже если состояние не изменилось? - PullRequest
0 голосов
/ 13 апреля 2020

Таким образом, если каждое обновление пользовательского интерфейса должно происходить только тогда, когда «состояние» или «реквизит» для изменения компонента, то почему контролируемый вход возвращается к значению, которое находится внутри состояния, когда состояние не было обновлено и ничего не имеет запустить цикл обновления?

1 Ответ

0 голосов
/ 13 апреля 2020

В контролируемом компоненте значение равно тому, которое вы передаете ему в качестве реквизита.

Если это значение не изменяется, то значение этого контролируемого компонента также не изменяется.

Таким образом, обычно в управляемых компонентах вы передаете в качестве onChange поддержку функции обратного вызова, которая изменяет значение. Если эта функция обратного вызова не изменяет значение, то значение входа не изменяется.

Например,

const App = () => {
  const [value, setValue] = useState("");
  return (
    <div>
      <input value={value} onChange={(e) => {}} />
    </div>
  );
};

Независимо от того, сколько мы пытаемся записать в этот вход, его значение всегда будет оставить пустую строку "". Поскольку метод on change не обновляет состояние значения.

Таким образом, для ясности в вашем вопросе состояние не возвращается к начальному значению, оно никогда не изменяется, и то же самое относится к элементу html - значение на входе никогда не меняется.

Пример кода: https://codepen.io/besnikkorca/pen/rNOVXzx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...