Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

257
Views
React Native Modal no se esconde

Estoy implementando mi propio Modal, tratando de reemplazar Alert.alert con algo más hermoso. Lo hice para que se muestre cuando sea necesario, pero no se oculta al presionar el botón, pero creo que le transfirí la función necesaria. Mi estructura modal es la siguiente:

 export const RCModal = ({ title, visible, onButtonPress }) => { return ( <Modal animationType='fade' transparent={true} visible={visible} > <View style={styles.container}> <Text style={styles.title}>{title}</Text> <Pressable style={styles.button} onPress={onButtonPress}> <Text style={styles.text}>OK</Text> </Pressable> </View> </Modal> ) };

Y se utiliza en la aplicación de la siguiente manera:

 // ... const [alertVisible, setAlertVisible] = useState(false); const [alertTitle, setAlertTitle] = useState(); const [alertOnPress, setAlertOnPress] = useState(); // ... const winner = (theWinner) => { setBlocked(true); setAlertTitle(`${theWinner} win!`); setAlertOnPress(() => setAlertVisible(!alertVisible)); setAlertVisible(true); } // ... return ( <View style={styles.container}> <RCModal title={alertTitle} visible={alertVisible} onButtonPress={alertOnPress} /> <ScrollView contentContainerStyle={{ flexGrow: 1, justifyContent: 'center' }}> <Text style={styles.title}>Noughts and Crosses</Text> <Text style={styles.tip}>Get {winCondition()} in row, column or diagonal</Text> <View style={styles.buttonsContainer}> <Text style={styles.turnContainer}>Turn: <Text style={[styles.turn, { color: turn === 'X' ? '#2E86C1' : '#E74C3C'}]}>{turn}</Text></Text> <TouchableHighlight underlayColor="#000000" style={[styles.button, styles.newGameButton]} onPress={setInitialFieldState}> <Text style={styles.buttonText}>New game</Text> </TouchableHighlight> </View> <Field state={fieldState} size={fieldSize} onCellPress={onCellPress} /> </ScrollView> <View style={styles.settingsButtonContainer}> <TouchableHighlight underlayColor={theme.colors.secondary} style={styles.settingsButton} onPress={onSettingsPress}> <Image source={require('../img/settings.png')} style={styles.settingsIcon} /> </TouchableHighlight> </View> </View> ); };

Cuando se llama al winner() , se muestra como debería, pero cuando presiono el botón Aceptar, no se oculta. ¿Cómo puedo arreglarlo?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede usar setAlertVisible para cambiar el estado de alertVisible :

 <RCModal title={alertTitle} visible={alertVisible} onButtonPress={() => setAlertVisible(false)} />
about 4 years ago · Juan Pablo Isaza Report

0

La respuesta fue que para configurar una función como una variable de estado, necesitaba configurarla como setAlertOnPress(() => () => setAlertVisible(false)) (2 x () => )

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!