当在标题的左上角单击“Account”按钮但收到错误时,我正在尝试呈现一个完整的屏幕模式。
无法读取未定义的属性导航
我这是怎么回事?
AppNavigator.js文件:
import React, {useState} from 'react';
import {
Button,
Image,
Modal,
Pressable,
Text,
TextInput,
TouchableOpacity,
View,
} from 'react-native';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import {HomeScreen} from '../../features/reports/screens/HomeScreen';
import {RiskAssessmentListScreen} from '../../features/reports/screens/RiskAssessmentListScreen';
import {ModalScreen} from '../../features/reports/screens/ModalScreen'
const Stack = createStackNavigator();
const AppNavigator = ({navigation}) => {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="GoPAD"
component={HomeScreen}
options={{
headerLeft: () => (
<Button
onPress={() => navigation.navigate('MyModal')}
title="Account"
/>
),
headerRight: () => (
<Image
style={{tintColor: 'blue'}}
source={require('../../../assets/img/refreshIcon.png')}
/>
),
}}
/>
<Stack.Screen name="MyModal" component={ModalScreen} />
<Stack.Screen
name="Fire Risk Assessment - Flats"
component={RiskAssessmentListScreen}
options={{headerBackTitle: 'Back'}}
/>
</Stack.Navigator>
</NavigationContainer>
);
};
export default AppNavigator;
我的ModalScreen.js文件:
import React from 'react'
import {View, Text, Button} from 'react-native'
export const ModalScreen = ({navigation}) => {
return (
<View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
<Text style={{fontSize: 30}}>This is a modal!</Text>
<Button onPress={() => navigation.goBack()} title="Dismiss" />
</View>
);
}
发布于 2021-05-22 06:32:49
navigation
道具只能在NavigationContainer
的子代中使用。
您现在要做的是在NavigationContainer
的父级访问NavigationContainer
,因此navigation
是未定义的。
有几种方法可以解决这个问题:
NavigationContainer
移动到App.js
或index.js
。ref
传递给NavigationContainer
,并引用ref
的方法如文件所示。https://stackoverflow.com/questions/67650143
复制相似问题