Intento ejecutar la función Crear nueva tantas veces como el tamaño de mi matriz, desafortunadamente fallo.
Código del elemento principal
return ( <View style={{ flex: 1, alignContent: "center", alignItems: "center", }} > <Text style={{ fontSize: 20, margin: 30, color: colors.darkGray, }} > ──────── Skanowane kody ──────── </Text> <ScrollView> {newHistoryScan(images.qr_test, text[0])} </ScrollView> </View> ); }Una función que representa el siguiente elemento.
function newHistoryScan(image, result) { return ( <View style={{ alignItems: "center", }} > <Image source={image} resizeMode="contain" style={{ width: 350, height: 150, }} /> <TouchableOpacity onPress={() => {checkResult(result)}} > <Text style={{ color: 'blue', fontSize: 20, marginTop: 10, marginBottom: 40, }} > {result} </Text> </TouchableOpacity> </View> ); }Entonces, hice una función que funciona, muestra todos los elementos de la matriz, desafortunadamente cuando llamo a la función newHistoryScan, la pantalla del teléfono permanece en blanco, los elementos no aparecen.
function loopItems(){ for (let a = 0; a < text.length; a++ ){ console.log(text[a]) newHistoryScan(images.qr_test, text[a]) } }Consola Código MS Consola
Teléfono de pantalla Vacía - teléfono
Si pego la referencia a la función newHistoryScan allí, los elementos se muestran en el teléfono.
pantalla de trabajo - teléfono
Llamar a una función que muestra elementos secuencialmente y debe llamar a esta función la cantidad de veces
<ScrollView> {loopItems()} </ScrollView>Llamada de función (directa) que funciona correctamente.
<ScrollView> {newHistoryScan(images.qr_test, text[a])} </ScrollView>Creo que su problema es que loopItems no devuelve nada. Para lograr esto con un ciclo for, harías esto:
function loopItems(){ const items = [] for (let a = 0; a < text.length; a++ ){ console.log(text[a]) items.push( newHistoryScan(images.qr_test, text[a]) ) } return items }Creo que deberías usar map en su lugar:
function loopItems(){ // NOTE: I have no idea where you initialize text or images return text.map(item=>{ console.log(item); return newHistoryScan(images.qr_test, item); }) }