Если ошибка исходит из показанного кода, это означает, что this.props.myTopTracks
равно undefined
, что в свою очередь означает, что state.music.myTopTracks
равно undefined
.
Настоящая проблема в приложенииначальное состояние.Посмотрите на ваши редукционные редукторы и убедитесь, что ваше начальное состояние устанавливает myTopTracks
в пустой массив, []
.Это обычный безопасный способ инициализации состояния приложения перед извлечением реального списка с сервера.
Вам также все равно нужно будет изменить код представления для учета пустого списка, поскольку myTopTracks[0]
будет undefined
, если список пуст.Одним из способов решения этой проблемы является создание безопасного первого объекта по умолчанию в списке, который будет заменен входящими данными из выборки, такими как:
{
myTopTracks: [{
myTopTrackName: 'Loading...',
myTopTrackImage: ''
}]
}
Другой метод заключается в проверке длины списка.и, если оно пустое, создайте что-то еще, например, спиннер.Это действительно зависит от требований к дизайну вашего приложения на данный момент.Но это два варианта.