tengo un problema con la función en React Native. Compruebo si la cadena es un correo electrónico, un mensaje de texto o un teléfono y devuelve el objeto apropiado, por ejemplo, Linking.openURL( mailto:${phone} ).
Pero la función activa automáticamente la URL y me reenvía a la aplicación del teléfono, ¿qué estoy haciendo mal?
Una función para verificar el valor en una cadena
function checkResult(result){ let emailChecker = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if( !( emailChecker.test(result))){ return Linking.openURL(`mailto:${result}`) } if(isNaN(result)){ return Linking.openURL(`tel:${result}`) } }Mi opacidad táctil
<TouchableOpacity onPress={checkResult(result)} > <Text style={{ color: 'blue', fontSize: 20, marginTop: 10, marginBottom: 40, }} > {result} </Text> </TouchableOpacity>onPress={checkResult(result)} esto resultará en llamar a la función checkResult cuando la pase al componente, por lo que la función se ejecutará en el procesamiento.
Actualice su devolución de llamada onPress a () => checkResult(result) .
<TouchableOpacity onPress={() => checkResult(result)} > <Text style={{ color: 'blue', fontSize: 20, marginTop: 10, marginBottom: 40, }} > {result} </Text> </TouchableOpacity>para obtener más detalles sobre cómo pasar la función al componente, aquí