¿Cómo imprimo los valores que veo en mi consola? Necesito mostrarlos en la aplicación que estoy ejecutando en React Native usando Expo. ¿Necesito mapear a través de la matriz de objetos e imprimir valores, o ejecutar MyProfile de una manera diferente porque está sincronizado?
¡Gracias!
import { useNavigation } from "@react-navigation/core"; import React, { useEffect, useState } from "react"; import firebase from "firebase/app"; import "firebase/firestore"; import { auth } from "../firebase"; import { Text, View, StyleSheet, Image, SafeAreaView, ScrollView, TouchableOpacity, } from "react-native"; import { Animate } from "react-native-entrance-animation"; import Copyright from "./Copyright"; const ProfileScreen = () => { const navigation = useNavigation(); const MyProfile = () => { const [posts, setPosts] = useState(null); let myPosts = "Profile loading..."; const collectIdsAndDocs = (doc) => { return { id: doc.id, ...doc.data() }; }; useEffect(() => { const getPost = async () => { const snapshot = await firebase .firestore() .collection("profiles") .where("email", "==", auth.currentUser.email) .get(); myPosts = snapshot.docs.map(collectIdsAndDocs); console.log(myPosts); setPosts({ myPosts }); }; getPost(); }, []); return ( <View> <Text>{/*how do I print out values here!? I see them in console*/}</Text> </View> ); };
Como ya llamaste al hook setPosts
useState
, puedes acceder a las posts
en tu código de representación:
return ( <View> {posts.map((post) => ( <Text>{post.id}</Text> ))} </View> );
Para resolver el problema null
, pase una matriz vacía como valor inicial cuando defina el estado:
const [posts, setPosts] = useState([]);