Я пытаюсь создать компонент, который будет выполнять вызов API, чтобы получить данные о диджеях, и использовать их для создания карт ReactStrap и вернуть эти карты в родительский div flexbox.
Сначала я подумал о множестве разных способов сделать это, но метод, который я решил сделать (и я не уверен, так ли это должно быть), состоит в том, чтобы хранить данные для каждая карта в виде массива в состоянии моего компонента.
Позже я буду использовать данные для построения карт с использованием функции map в массиве и сохранения этих компонентов в переменной, которая будет возвращена в другом div flexbox.
import React from 'react'
import DjCard from "./DjCard"
class CreateDjCards extends React.Component {
constructor() {
super()
this.state = {
data: []
}
}
componentDidMount() {
fetch("URL")
.then(JSON.stringify)
.then(JSON.parse)
.then((response) => this.setState({
data: response.items
}))
}
render() {
let styles = {
display: "flex",
flexWrap: "wrap"
}
let cards = this.state.data.map( (item) => {
return <DjCard data={item}/>
})
return(
<div style={styles}>
{cards}
</div>
)
}
}
export default CreateDjCards
Когда я делаю это, он успешно компилируется, но я получаю ошибку «TypeError: Невозможно прочитать свойство« map »из undefined». Я ожидал флексбокс, содержащий карточки каждого предмета, описанного в JSON.
Каков типичный способ построения множества компонентов из данных API и их возврата / Что я делаю неправильно? Спасибо!