React native 使用导航堆栈react native更改屏幕而不发生单击事件

React native 使用导航堆栈react native更改屏幕而不发生单击事件,react-native,React Native,我想做的是,当他读完二维码后,在活动结束后立即转到下一个屏幕。我试图通过声明: const handleBarCodeScanned = ({ type, data }) => { {this.props.navigation.navigate ('testScreen', {data1, data2})} } 通常,文档总是显示与按钮关联的onClick()函数 import React,{useState,useffect}来自“React”; 从“react native

我想做的是,当他读完二维码后,在活动结束后立即转到下一个屏幕。我试图通过声明:

const handleBarCodeScanned = ({ type, data }) => {
    {this.props.navigation.navigate ('testScreen', {data1, data2})}
}
通常,文档总是显示与按钮关联的
onClick()
函数

import React,{useState,useffect}来自“React”;
从“react native”导入{Text,View,StyleSheet,Button,PermissionsAndroid};
从“expo条形码扫描仪”导入{BarCodeScanner};
从“react native android wifi”导入wifi;
导出默认函数QrCodeScreen(){
const[hasPermission,setHasPermission]=useState(null);
const[scanned,setScanned]=使用状态(false);
useffect(()=>{
(异步()=>{
const{status}=wait BarCodeScanner.requestPermissionsAsync();
setHasPermission(状态==‘已授予’);
})();
}, []);
常量手柄代码=({type,data})=>{
{this.props.navigation.navigate('nextScreen',{data1,data2})}//更改屏幕
})}
};
if(hasPermission==null){
返回请求相机许可;
}
if(hasPermission==false){
不允许进入摄像机;
}
返回(
{scanned&&setScanned(false)}/>}
));
}

似乎您正在使用功能组件,因此没有此上下文

您忘记了导入和初始化导航挂钩

import { useNavigation } from '@react-navigation/native';

然后


通过在函数声明中作为导航参数传递,我成功地解决了这个错误

以前

export default function QrCodeScreen() {
}
之后

换屏

navigation.navigate('SetupConnectionScreen');

什么不起作用?怎么了?您使用的是功能组件还是类组件?剩下的代码?没有信息我就帮不上忙。。。
const handleBarCodeScanned = ({ type, data }) => {
    navigation.navigate('nextScreen', { data1, data2 })
})}
export default function QrCodeScreen() {
}
export default function QrCodeScreen({navigation}) {
}
navigation.navigate('SetupConnectionScreen');