Ваша проблема в том, что, учитывая тот факт, что вы вызываете getAssignments()
в методе componentDidMount
, это означает, что есть промежуток времени между моментом, когда компонент смонтирован, и полем назначения заполнено в хранилище, в котором естьнет назначений, следовательно, почему вы получаете ошибку .map() is not a function
.
Обработчик щелчков вызывается только после завершения асинхронной операции, поэтому к этому моменту определяется assignments
.
Чтобы исправить это, вы можете изменить состояние по умолчанию для поля назначения следующим образом:
{
"assignments":[]
}
Другая проблема с вашим кодом, как упомянул @ radonirina-maminiaina, заключается в том, что ваша displayAssignments
функция не возвращает результат карт, поэтому HTML-код будет пустым
Функция Array.map
создает новый массив из данного массива с предоставленной функцией, примененной к каждому элементу.
Еще одна вещь, которую следует учитывать, - это то, почему вам нужен assignments.assignments
, чтобы попасть в список назначений.Возможно, вы могли бы изменить свои действия или редуктор, чтобы удалить вложение.