Hola Lucio… al principio podía ver las imágenes de los productos pero cuando intenté continuar para ver el título y precio de cada produc...

Juanito Ortega Guzmán

Juanito Ortega Guzmán

Pregunta
studenthace 3 años

Hola Lucio… al principio podía ver las imágenes de los productos pero cuando intenté continuar para ver el título y precio de cada producto, se me rompió todo, ahora no puedo ver nada, solo veo un screen vacío en el emulador.

Screen Shot 2022-01-20 at 21.56.22.png

En la consola… muy raro… me sale esto.

Screen Shot 2022-01-20 at 21.58.03.png

Estos son mis códigos en:

ProductItem.js

import React from 'react'; import { StyleSheet, Dimensions, Text, View, Image } from 'react-native'; import { colors } from '../../resources/constants'; import config from '../../resources/config'; const ProductItem = props => { const { item } = props; const { id, name, price, images } = item; return ( <View key={id} style={styles.itemContainer}> <Image resizeMode="cover" style={styles.itemImage} source={{ uri: images[0].src, headers: { Authorization: config.liveLinkCredentials } }} /> <View style={styles.itemData}> <View style={styles.itemMeta}> <Text style={styles.itemPrice}>{`$ ${price}`}</Text> <Text style={styles.itemTitle}>{name}</Text> </View> </View> </View> ); } const styles = StyleSheet.create({ itemContainer: { width: Dimensions.get('window').width / 2, padding: 8, alignContent: 'center', }, itemImage: { width: '100%', height: 160, borderRadius: 8, overflow: 'hidden', marginBottom: 4 }, itemData: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }, itemMeta: { width: '70%' }, itemTitle: { color: colors.darkGrey, fontWeight: '300' }, itemPrice: { color: colors.darkGrey, fontWeight: 'bold' }, itemBtn: { width: '25%' }, productBtn: { width: 30, height: 30 } }); export default ProductItem;

ProductsScreen.js

import React, { useContext } from "react"; import { SafeAreaView } from "react-native-safe-area-context"; import { StyleSheet, Dimensions, Platform, Text, FlatList } from "react-native"; import ProductItem from "./ProductItem"; import Context from "../../context/Context"; import { sizes } from "../../resources/constants"; const ProductsScreen = props => { const { products } = useContext(Context); return ( <SafeAreaView> <FlatList style={styles.container} data={products} renderItem={({item}) => <ProductItem item={item} {...props} />} /> </SafeAreaView> ); } const styles = StyleSheet.create({ container: { height: Platform.OS === 'ios' ? Dimensions.get('window').height - sizes.headerHeight - 30 - 50 : Dimensions.get('window').height - sizes.headerHeight - 30 } }); export default ProductsScreen;

Saludos.

3 respuestas
para escribir tu comentario
    Lucio Negrello

    Lucio Negrello

    teacherhace 3 años

    Podrías hacer un console.log de item? Estuve revisando el código y no encuentro errores de tipeo, entonces creo que puede venir en el paso de propiedades entre componentes y el contexto. Saludos!

    Juanito Ortega Guzmán

    Juanito Ortega Guzmán

    studenthace 3 años

    Que raro, pude imprimir los name, luego pude imprimir las imágenes, pero cuando quise imprimir el precio y el name ya no pude y aunque probé revirtiendo estos últimos cambios, no pude volver a ver los name impresos. Por si acaso te dejo mi repo, podrías revisarlo por favor?... yo revisé, pero no encuentro el error, mis conocimientos son limitados. https://github.com/JuanitoOrtega/wp-react-native-store

    Lucio Negrello

    Lucio Negrello

    teacherhace 3 años

    Hola Juanito, cómo estás? Por el error, entiendo que el problema no es con la maqueta, sino con el fetch a la API. Al parecer la promesa está devolviendo un archivo JSON inválido. Tendrías que revisar la función en la que se hace el fetch y que esté encendido el servidor para responder la petición. Espero que con esta info, puedas resolverlo. Saludos!

Curso de App Mobile utilizando Woocommerce

Curso de App Mobile utilizando Woocommerce

Construye una app mobile que se conecte con WooCommerce. Aprende a listar productos, manejar compras, y registrar pedidos. Crea interfaces con React Native y administra la lógica del carrito de compras. Ideal para aquellos con nociones básicas en WooCommerce y React Native.

Curso de App Mobile utilizando Woocommerce
Curso de App Mobile utilizando Woocommerce

Curso de App Mobile utilizando Woocommerce

Construye una app mobile que se conecte con WooCommerce. Aprende a listar productos, manejar compras, y registrar pedidos. Crea interfaces con React Native y administra la lógica del carrito de compras. Ideal para aquellos con nociones básicas en WooCommerce y React Native.