Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

261
Visualizações
¿Cómo hago para que onPress recuerde que se presionó?

¿Cómo hago para que se recuerde pressedItem y no se cambie en el siguiente onPress, para que se anule la selección si solo se vuelve a llamar a la función? ¿Quizás las identificaciones que se recordarán en una matriz y la matriz altera su longitud entre pressedItem y dePressedItem?

 const [pressedItem, setPressedItem] = useState(null); let selected = []; const changeColor = (itemid) => { setPressedItem(itemid); } };
 <FlatGrid data={interesi} style={tw``} spacing={10} renderItem={({ item }) => ( <TouchableWithoutFeedback onPress={() => changeColor(item.id)}> <View style={ pressedItem === item.id ? item.firstStyle : item.secondStyle }> <Text style={tw`text-black`}>{item.english}</Text>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Si no se puede presionar otra identificación, puede usar:

 const changeColor = (itemid) => { if (!pressedItem) { setPressedItem(itemid); } };

Si está buscando no presionar la misma identificación que antes, entonces:

 const changeColor = (itemid) => { if (pressedItem !== itemid) { setPressedItem(itemid); } };

EDITAR:

Actualizando la respuesta basada en los comentarios. Entonces necesitaría hacer algo como mantener un mapa del estado presionado del itemid :

 const [pressedItems, setPressedItems] = useState({}); let selected = []; const changeColor = (itemid) => { pressedItems[itemid] = !pressedItems[itemid]; setPressedItem(pressedItems); };
about 4 years ago · Juan Pablo Isaza Relatório

0

Debe agregar la identificación de su elemento a una matriz como dijo:

 const [pressedIds, setPressedIds] = useState<number[]>([]); const isMyIdPressed = (id: number) => { if (pressedIds.include(id)) { setPressedIds(pressedIds.splice(pressedIds.indexOf(id), 1)); } else { setPressedIds([...pressedIds, id]); } } <FlatGrid data={interesi} style={tw``} spacing={10} renderItem={({ item }) => ( <TouchableWithoutFeedback onPress={() => isMyIdPressed(item.id)}> <View style={pressedIds.include(item.id) ? item.firstStyle : item.secondStyle }> <Text style={tw`text-black`}>{item.english}</Text>

Cada vez que presione una identificación, simplemente verifique si está en la matriz, si es así, agregue la identificación a la matriz y, si no, elimínela de la matriz.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda