Изначально я рендерил компоненты, используя этот код для сопоставления массива объектов ([{}, {}, {}]
):
let todoComponents = allTodos.map(item => <Todos key={item.id} item={item} handleChange={handleChange}/>)
Однако , это не работает в отдельном проекте, где я получаю данные из Firebase с другой структурой данных. В нем каждый объект имеет уникальное имя.
[{
"-M8CpcbvDriZpw4sc4IW" : {
"completed" : false,
"id" : "-M8CpcbvDriZpw4sc4IW",
"text" : "Get Comic Book"
},
"-M8Cpku0PCNu0_Eajtuu" : {
"completed" : false,
"id" : "-M8Cpku0PCNu0_Eajtuu",
"text" : "Take out Trash"
}
}]
Проблема в том, что .map
не знает, где искать значение item
. В первом примере .map
искал массив -> объект (со значениями). Это не работает для данных из firebase, потому что массив -> объект -> объект (со значениями). Как я могу сказать .map
пропустить лишний объект, не зная точного пути во вложенном объекте?