React refs: Сохранение текста в текстовых полях

Программа нуждается в дополнительной логике. Например, после нажатия кнопки «Редактировать» введенный текст не сохраняется. Разделим процесс на два этапа:

  1. Ввод и сохранение текста в переменную.
  2. Вставка текста из переменной в текстовое поле.

В этом уроке реализуем первый этап – сохранение введенного текста.

Неподходящие ID и обращение по индексу

Использование id текстового поля невозможно, так как создаётся несколько компонентов с одинаковым id, а id должен быть уникальным на странице.

Обращение к текстовому полю по индексу (this.refs.text[index]) также неэффективно, поскольку React не сможет однозначно определить целевое поле из-за множественности текстовых полей.

Использование атрибутов refs

В React существуют атрибуты refs (references) – ссылки на объекты. Используем их для решения задачи.

В textarea добавим атрибут ref, например, ref={this.newTxt}. Значение newTxt может быть любым.

Получение значения из текстового поля

В функции save создадим переменную value, в которую поместим значение из текстового поля:

const value = this.refs.newTxt.value;

Теперь value содержит введенный текст. Для демонстрации выведем его с помощью alert:

alert(value);

Обновим страницу, нажмем «Редактировать», введем текст (например, «itproger») и нажмем «Сохранить». alert выведет введенный текст.

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

Что будем искать? Например,программа