React native TouchableOpacity onPress 在 Android Build (APK) 上不起作用
Posted
技术标签:
【中文标题】React native TouchableOpacity onPress 在 Android Build (APK) 上不起作用【英文标题】:React native TouchableOpacity onPress not working on Android Build (APK) 【发布时间】:2020-09-19 21:08:56 【问题描述】:TouchableOpacity 可以在安卓模拟器和手机上运行,但是当我生成 APK 时,TouchableOpacity 不再工作了。
会发生什么?
当我点击 TouchableOpacity 时没有任何反应,它只是制作不透明动画
正确的做法是转到主屏幕,但它没有
上面有像 z-index 这样的东西吗?
Javascript 代码如下
import React from 'react';
import View, Image, Text, TouchableOpacity, TextInput from 'react-native';
import useNavigation from '@react-navigation/native';
import useField from '@unform/core';
import Form from '@unform/mobile';
import KeyboardAwareScrollView from 'react-native-keyboard-aware-scroll-view';
import styles from './styles';
import logoImg from '../../assets/logo.png';
import Home from '../Home';
export default function Login()
const navigation = useNavigation();
function navigateToHome()
navigation.navigate(Home);
return (
<KeyboardAwareScrollView style=styles.scroll>
<View style=styles.container>
<Image style=styles.logo source=logoImg />
<TextInput style=styles.input placeholder="Login" />
<TextInput
secureTextEntry=true
style=styles.inputPassword
placeholder="Senha"
/>
<TouchableOpacity style=styles.button onPress=navigateToHome>
<Text style=styles.buttonText>Entrar</Text>
</TouchableOpacity>
</View>
</KeyboardAwareScrollView>
);
样式代码如下
import StyleSheet from 'react-native';
export default StyleSheet.create(
container:
flex: 1,
alignItems: 'center',
backgroundColor: '#fff',
,
scroll:
backgroundColor: '#fff',
,
logo:
marginTop: 30,
,
input:
marginTop: 30,
padding: 10,
width: 300,
height: 56,
backgroundColor: '#f5f5f5',
fontSize: 16,
borderBottomWidth: 1,
borderBottomColor: '#8CC63F',
borderRadius: 4,
,
inputPassword:
marginTop: 30,
padding: 10,
width: 300,
height: 56,
backgroundColor: '#f5f5f5',
fontSize: 16,
borderBottomWidth: 1,
borderBottomColor: '#8CC63F',
borderRadius: 4,
,
button:
width: 122,
height: 66,
marginTop: 60,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: '#20565C',
borderRadius: 4,
,
buttonText:
fontSize: 16,
color: '#fff',
textTransform: 'uppercase',
fontWeight: 'bold',
,
);
【问题讨论】:
您说您可以正确地看到不透明度。我认为它与 zIndex 无关。添加一个日志并尝试检查它是否显示在 android Studio logcat 中 我正在使用 Reactotron 并在函数 navigateToHome() 中添加 console.tron.log('click') 应用程序崩溃 【参考方案1】:如下更新代码:
<TouchableOpacity style=styles.button onPress=()=>this.navigateToHome>
<Text style=styles.buttonText>Entrar</Text>
</TouchableOpacity>
希望它对你有用。
【讨论】:
当我点击不透明动画时 再次尝试浏览您的导航代码,我确定缺少某些内容。尝试添加一条警报语句,看看它是否会触发确认可触摸不透明度有效的警报。 我用点击消息创建了一个警报,它在 APK 中正常工作,导航不工作 我的样式代码不是问题吗?奇怪的是,在模拟器中它可以工作,但在 apk 中没有 我解决了它把''放在这样的函数中 navigateToHome navigation.navigate('Home')以上是关于React native TouchableOpacity onPress 在 Android Build (APK) 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
react native 增加react-native-camera
更新 react-native-maps 以使用 create-react-native-app
react native 增加react-native-storage
React-Native 和 Expo:create-react-native-app 和 react-native init 之间的区别
什么是 react-native-cli 和 @react-native-community/cli?
React Native - 当 react-native 版本 > 0.55 时,无法通过 react-native-cli 创建新项目