Necesito renderizar una FlatList con elementos de imagen en mi aplicación RN, pero parece que me perdí algo. Obtengo datos de blob y los analizo con Buffer to a String desde mi API y los envío a mi Array. Uso ese Array para renderizar esa FlatList
export function HomeScreen() { const imagesList: any = []; useEffect(() => { loadData(); }, []); const loadData = async () =>{ await callAPI().then(res => { //blob base64 is from type jpeg imagesList.push({imageURI: "data:image/jpeg;base64,"+Buffer.from(res.image1).toString('ascii')}) }) } return ( <View style={[styles.imageSlider, {width, height}]}> <FlatList data={imagesList} renderItem={({item, index}) => ( <> {console.log('item: ', item)} <Image key={index} source={{uri: item.imageURI}} style={{ height, width, resizeMode: 'cover', maxHeight: 500, maxWidth: 500, }} /> </> )} /> </View> ) }Revisé los datos que recibo de la API y todo está bien, pero no se está procesando
¿Alguien podría decirme mi problema? No soy un experto en RN ¡Gracias!
Dos problemas que puedo ver...
// Define state using the useState hook const [ imagesList, setImagesList ] = useState<Array<{ imageURI: string }>>([]); const loadData = async () => { const { image1 } = await callAPI() // you want an array for some reason ¯\_(ツ)_/¯ return [{ imageURI: `data:image/jpeg;base64,${Buffer.from(image1).toString("base64")}` }] } useEffect(() => { loadData.then(setImagesList) }, [])