Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
El evento Touche en FlatList nativo de reacción no funciona si el elemento se eliminó y se volvió a agregar

Estoy haciendo una aplicación en Android usando react-native y tengo un problema al usar la entrada táctil dentro de mi FlatList después de eliminar y agregar elementos a FlatList.

Cómo sucede el problema:

  1. Agrego un elemento en mi matriz de datos y agrega un botón a FlatList.
  2. Puedo interactuar con el botón como se esperaba.
  3. Restablecí la matriz de datos a [].
  4. Elimina el Botón de la FlatList.
  5. Agrego otro elemento en mi matriz de datos y agrega un Botón a FlatList
  6. ( PROBLEMA comienza aquí ) aunque el botón aparece en FlatList, no puedo interactuar con él (he probado otros elementos táctiles como Pressable, TextInput o simplemente usando onPress en un elemento y obtengo el mismo comportamiento)
  7. Si agrego otro elemento a la matriz de datos, agregará un nuevo botón de trabajo (es decir, el primer botón no funciona pero el segundo botón funciona)
  8. Si elimino el botón n y empiezo a agregar el botón n + m nuevamente, entonces el primer n no funcionará, pero el m-ésimo último funcionará.

Reduje el problema al siguiente código pequeño:

 import React, {useState} from 'react'; import {Button, FlatList, View} from 'react-native'; export default function Test() { const [data, setData] = useState([]); function addData() { setData(prev => [...prev, {key: new Date().getTime(), text: 'some text'}]); } function deleteAllData() { setData([]); } return ( <View style={{ flex: 1, }}> <Button title={'ADD'} onPress={() => addData()} /> <Button title={'DEL'} onPress={() => deleteAllData()} /> <FlatList data={data} renderItem={({item, index}) => { return ( <Button key={item.key} title={`${item.key}`} onPress={() => console.log('Clic!')} /> ); }} /> </View> ); }

Creo que me estoy perdiendo algo obvio, pero me está volviendo loco ^^ ¡Cualquier ayuda sería apreciada!

Estoy usando react-native 0.66.0 y react 17.0.2 testing en mi dispositivo Android físico.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda