Условный рендеринг полезен, но вам могут понадобиться ваши компоненты для отображения неизвестного количества элементов. Часто в реактивном программировании программист не имеет никакого способа узнать, какое состояние приложения находится во время выполнения, потому что так много зависит от взаимодействия пользователя с этой программой. Программистам необходимо написать свой код для правильной обработки этого неизвестного состояния раньше времени. Использование Array.map() в React иллюстрирует это понятие. Например, вы создаете простое приложение «To Do List». Как программист, у вас нет способа узнать, сколько элементов пользователь может иметь в своем списке. Вам необходимо настроить компонент для динамического отображения правильного количества элементов списка задолго до того, как кто-то, использующий программу, решит, что сегодня день прачечной.
Редактор кода имеет большую часть компонента MyToDoList . Некоторые из этого кода должны выглядеть знакомыми, если вы завершили задачу контролируемой формы. Вы заметите textarea и button, а также несколько методов, которые отслеживают их состояния, но пока ничего не отображается на странице. Внутри constructor создайте объект this.state и определите два состояния: userInput должен быть инициализирован как пустая строка, а toDoList должен быть инициализирован как пустой массив. Затем удалите комментарий в методе render() рядом с переменной items. Затем с помощью метода Array.map() перечислите массив toDoList, хранящийся во внутреннем состоянии компонента и динамически визуализируйте li для каждого элемента. Попробуйте ввести строку eat, code, sleep, repeat в textarea , затем нажмите кнопку и посмотрите, что произойдет.
Примечание. Возможно, вы знаете, что все дочерние элементы дочернего элемента, созданные с помощью операции сопоставления, такие как эта, должны быть снабжены уникальным атрибутом key. Не беспокойтесь, это тема следующей задачи.