Estoy tratando de mostrar estos datos en una FlatList.
Array [ Object { "-N1gqvHXUi2LLGdtIumv": Object { "Message": "Aeaaeaea", "Message_CreatedAt": 1652167522975, "Message_by_Email": "vvvv@test.com", "Message_by_ID": "DgGfooQIMQQ1rs5xlmmSKCSTrKA2", }, "-N1hB3A_Q7-K75UbvPSM": Object { "Message": "Yyoo", "Message_CreatedAt": 1652173063182, "Message_by_Email": "vvvjugu@test.com", "Message_by_ID": "DgGfooQIMQQ1rs5xlmmSKCSTrKA2", }, }, ]Mis datos se ven así, sus múltiples objetos en un solo objeto dentro de una matriz, y cada objeto tiene múltiples ID únicos, ¿cómo puedo leer los datos?
Mi código FlatList
<FlatList data={data} renderItem={(Item) => <Text>{Item.item. Message}</Text>}Aquí el problema es que FlatList está considerando el objeto principal y no los elementos secundarios, ¿cómo puedo acceder y representar a los elementos secundarios en una Flatlist y cómo puedo acceder a la identificación única?
Puede acceder a las claves de un objeto (sus ID) obj usando Object.keys(obj) . Esto devuelve una matriz de todas las claves incluidas en el objeto dado, por ejemplo:
Object.keys(obj).map(key => console.log(key, obj[key])https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
También puede echar un vistazo más de cerca a las Object.entries() y Object.values() .
puede recorrer, cada elemento individual, y luego. desestructurarla y combinar la llave con el cuerpo.
const data = Onsnapshot.forEach((childSnapshot) => { const childKey = childSnapshot.key; const childData = childSnapshot.val(); console.log({ childKey, ...childData });}entonces puedes obtener estos datos en FlatList