Soy nuevo en reaccionar nativo y simplemente no puedo encontrar el motivo del error de bucle infinito con el que pasé mis últimas horas... Esto es lo que está sucediendo:
Tengo el siguiente componente personalizado
import { TouchableOpacity, StyleSheet, View, Text } from "react-native"; import { FontAwesome } from "@expo/vector-icons"; function AnswerContainer_CheckBox(props) { const [checked, setChecked] = useState(false); const checkedHandler =()=>{ if (checked == false) { setChecked(true); } else { setChecked(false); } } return ( <View> <TouchableOpacity onPress={() => { checkedHandler(); props.true_1; } } > <View style={styles.mainContainer}> <View style={styles.icon}> <FontAwesome name={checked == true ? "check-square" : "square-o"} size={24} color={checked == true ? "#3787FF" : "#BFD3E5"} /> </View> <Text style={styles.checkButtonText}>{props.title}</Text> </View> </TouchableOpacity> </View> ); }Yo uso ese Componente en mi pantalla así:
function myScreen(props) { const [true1, setTrue1] = useState(false); const setTrue_1_Handler = () => { switch (true1) { case false: setTrue1(true); alert("true"); break; case true: setTrue1(false); break; } }; return ( <SafeAreaView> <AnswerContainer_CheckBox true_1={setTrue_1_Handler()} title="Test_1" /> <AnswerContainer_CheckBox title="Test_2" /> <AnswerContainer_CheckBox title="Test_3" /> </SafeAreaView> ); }Cada vez que navego a "myScreen", aparece el error de bucle infinito y bloquea la aplicación, aunque todavía no presioné ese botón.
¿Algunas ideas? Sé que el problema ha surgido varias veces, pero todavía no lo hice funcionar (useEffect no ayudó de alguna manera...).
Gracias