我不能在5版中使用this.props.navigation.navigate。

import 'react-native-gesture-handler';
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createDrawerNavigator } from '@react-navigation/drawer';

import News from './src/screens/News';
import Photos from './src/screens/Photos'

const Drawer = createDrawerNavigator();

function App() {
  return (
    <NavigationContainer>
      <Drawer.Navigator initialRouteName="News" >
        <Drawer.Screen name="News" component={News}/>
        <Drawer.Screen name="Photos" component={Photos} />
      </Drawer.Navigator>
    </NavigationContainer>
  );
}

export default App;

我试着用this.props.navigation.openDrawer()来调用我的头。

<View style={style.iconHeader}>
  <TouchableOpacity onPress={() => this.props.navigation.openDrawer()}>
    <Feather name='menu' size={36} color='black' />
  </TouchableOpacity>
</View>

返回以下错误。TypeError: undefined is not an object (评价’_this.props.navigation.openDrawer()’)

解决方案:

由于你使用的是v5,你可以从@react-navigationnative中使用DrawerActions。

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

并且这样做。

    const navigation = useNavigation();
      return (
      <View style={style.iconHeader}>
      <TouchableOpacity   onPress={() => {
          navigation.dispatch(DrawerActions.openDrawer());
        }}>
        <Feather name='menu' size={36} color='black' />
      </TouchableOpacity>
    </View>

希望这能帮到你!

给TA打赏
共{{data.count}}人
人已打赏
未分类

在没有Mahapps.Metro程序集的项目中使用MetroProgressBar控件动画。

2022-9-8 16:19:38

未分类

在jsp页面上显示阵列列表

2022-9-8 16:19:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索