Каков наиболее эффективный способ использования события onChange и useState для элемента текстового поля

Пример кода;

<TextField id="name" onChange={(e: any) => setName(e.target.value)} value={name}> </TextField>

В таком случае; Перерисовывается ли TextField, когда я нажимаю любой символ? Или просто значение меняется?

Если сам элемент будет перерисован, это лучший способ сделать это?

Примечание. Я установил значение имени, потому что у меня есть форма, и если я вернусь на экран, я хочу установить значение состояния в значение TextField.


person mocco    schedule 04.09.2020    source источник
comment
Отвечает ли это на ваш вопрос? избегайте постоянного повторного рендеринга из ввода или текстовой области в реагировать js   -  person Jonnel VeXuZ Dorotan    schedule 04.09.2020
comment
Из какой библиотеки берется TextField?   -  person tsamaya    schedule 04.09.2020
comment
Я посмотрел решение, которое вы отправляете, но мой элемент является управляемым элементом, я думаю, это элемент Material-UI. Должен ли я создать новый компонент для TextField, а затем должен ли я использовать этот компонент с полным состоянием? @JonnelVeXuZDorotan   -  person mocco    schedule 04.09.2020
comment
Материал-UI @tsamaya   -  person mocco    schedule 04.09.2020


Ответы (1)


Вероятно, вам нужно разделить компоненты с состоянием на более мелкие компоненты, чтобы избежать повторного рендеринга, если реквизиты для этого компонента не изменились.

Если все отдельные элементы <TextField> находятся в одном большом родительском компоненте, React нужно будет каждый раз сравнивать запрошенную структуру пользовательского интерфейса всей формы.

Кроме того, используйте React DevTools — › Profiler чтобы увидеть, какие части работают медленно.

И React DevTools -> Компоненты –› Настройки –› Выделять обновления при рендеринге компонентов.

person Jonnel VeXuZ Dorotan    schedule 04.09.2020
comment
Я попытаюсь создать компонент с полным состоянием для этого TextField, а затем посмотрю, что происходит. Спасибо - person mocco; 04.09.2020