当我点击图标时打开抽屉反应导航版本5

2024-01-20

我想在单击 headerLeft 部分中的图标时打开抽屉,我也尝试了 this.props.navigation.dispatch 但给出了错误,navigation.dispatch 也给出了错误

下面的代码不会给出错误,但不会打开抽屉

import { DrawerActions } from '@react-navigation/native';
import { NavigationContainer } from '@react-navigation/native';
import { createDrawerNavigator } from '@react-navigation/drawer';
import { createStackNavigator } from '@react-navigation/stack';
const Drawer = createDrawerNavigator();
const Stack = createStackNavigator();

export default class App extends Component {

  createHomeStack = () =>
    <Stack.Navigator>
      <Stack.Screen
      initialRouteName="login"
      headerMode="screen"
        name="main"
        children={ this.createBottomTabs}
        options={{
          title: "Fitbit",
         headerLeft: () => (

            <Icon
              name="menu"
              size={25}
              color="#D4AF37"
              onPress={() => {DrawerActions.openDrawer()  }}
            />

          )} } />

    </Stack.Navigator>

  createDrawer = ({navigation}) =>

    <Drawer.Navigator initialRouteName="Main" >

      <Drawer.Screen name="Main" component={Main} />
      <Drawer.Screen name="Contacts" component={Food} />>
    </Drawer.Navigator>

  render() {
    return ( 
  <NavigationContainer>
        {this.createHomeStack()}
     </NavigationContainer>

    );
  }
}

为了实现这一点,您需要按照文档所述将堆栈包装到抽屉中。

文档在这里 https://reactnavigation.org/docs/drawer-navigator/#nesting-drawer-navigators-inside-others

我可能会使用这样的东西:

EDIT:添加了完整代码

import React,{Component} from 'react'
import { NavigationContainer } from '@react-navigation/native'
import { createDrawerNavigator } from '@react-navigation/drawer'
import { createStackNavigator } from '@react-navigation/stack'
import { View } from 'react-native'
import Icon from 'react-native-vector-icons/dist/Feather'
const Drawer = createDrawerNavigator()
const Stack = createStackNavigator()

const Main = () => <View></View>
const Food = () => <View></View>

const Home = ({ navigation }) => (
    <Stack.Navigator>
        <Stack.Screen name="Main" component={Main} options={{
            headerLeft: () => <Icon
                name="menu"
                size={25}
                color="#D4AF37"
                onPress={() => navigation.openDrawer()}
              />
      }} />
    </Stack.Navigator>
)


const DrawerNavigator = () => (
    <Drawer.Navigator initialRouteName="Home">
        <Drawer.Screen name="Home" component={Home} />
        <Drawer.Screen name="Contacts" component={Food} />
      </Drawer.Navigator>
)

export default props => (
    <NavigationContainer>
        <DrawerNavigator />
    </NavigationContainer>
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我点击图标时打开抽屉反应导航版本5 的相关文章

随机推荐

  • gaierror: [Errno -2] 名称或服务未知

    def make req data url method POST params urllib urlencode data headers Content type application x www form urlencoded Ac
  • 从环境中删除除与给定模式匹配的对象之外的所有对象

    我正在尝试删除所有objects来自我的 RStudio环境其中对象名称不等于模式 rm list ls pattern may19 但这给了我一个错误 as environment pos 中的错误 没有名为 pattern may19
  • 如何处理 Spark SQL 上的 AnalysisException?

    我正在尝试在 Spark 中执行查询列表 但如果查询未正确运行 Spark 会抛出以下错误 AnalysisException 不支持更改表更改列 这是我的代码的一部分 我在 Databricks 上使用 python 和 Spark SQ
  • 在android中为ksoap2设置编码utf-8

    我对 ksoap2 有问题 我想在 android 中为 ksoap2 设置编码 utf 8 或者在标头中设置内容类型为 text xml charset utf 8 我的代码 设置编码 envelope encodingStyle utf
  • MS Edge - window.print() 与 MS Edge 中的框架上下文无关

    与其他浏览器相比 Microsoft Edge 处理 window print 的方式不一致 在大多数浏览器中 从页面上的 iframe 内调用 window print 只会打印该 iframe 的内容 然而 在边缘它总是会打印整个文档
  • python - 递归删除字典键?

    我正在使用 Python 2 7plistlib以嵌套字典 数组形式导入 plist 然后查找特定键并在我看到它的任何地方将其删除 当谈到我们在办公室处理的实际文件时 我已经知道在哪里可以找到这些值 但我编写脚本时的想法是我不知道 希望我不
  • 行动扩展和共享核心数据

    我在我的应用程序中使用操作扩展 我们的应用程序当前使用核心数据 我正在应用程序和 使用应用程序组的操作扩展并成功将核心数据从文档目录迁移到应用程序组 当使用扩展程序将照片或笔记从照片 笔记应用程序导入到我的应用程序时 我遇到的问题会发生 该
  • 最佳实践 - 将事件声明为 Java 接口的一部分

    我正在尝试使用接口和事件来解耦一些 UI 代码 我想知道 Java 中是否有方法 最佳实践来将事件声明为 Java 接口的一部分 就像 C 提供的那样 C event declaration in interface public inte
  • 使用 Amazon Connect 将语音消息保存在 aws s3 存储桶中

    how to save voice message of customer number and store in an s3 bucket using aws connect I made a contact workflow but I
  • Python获取onclick值

    我正在使用 Python 和 BeautifulSoup 为我的一个小项目抓取网页 该网页有多个条目 每个条目由 HTML 中的表格行分隔 我的代码部分有效 但是很多输出是空白的 它不会从网页获取所有结果 甚至不会将它们收集到同一行中 ta
  • 在 Web 应用程序中使用条形码渲染框架生成条形码

    我正在使用条形码渲染框架来生成条形码 我已经下载了他们的dll 我可以看到 如何在 Windows 应用程序中完成它 我想做同样的事情 即生成条形码并在网络应用程序中使用它 以下是可以使用的问题的链接 适用于 NET 的免费条形码 API
  • Java Android 应用 MediaPlayer 中的 NullPointerException

    请帮忙 这只是我正在开发的一个简单的Android应用程序 它意味着每次单击按钮时都会播放声音 当我慢速单击按钮时它会工作 但如果我单击按钮总是崩溃由于运行时错误 NullPointerException 我不知道我做错了什么 这是我的代码
  • 使用临时变量代替重复的完整引用是否更好?

    假设我们有一个类似的对象 var foo a b c d e f 0 1 2 3 4 5 6 7 8 9 我们希望在函数中使用对象的各个部分 如下所示 function doStuff if foo a b c d e f 5 gt som
  • SPARQL - 查询属性并返回相关属性的结果

    我是 SPARQL 新手 我正在尝试运行 SPARQL 查询 以便返回属性的结果并根据此列出相关属性的值 示例代码为 SELECT player position club goals WHERE player a
  • Qt 安装程序框架:自动更新

    我目前正在使用 Qt 安装程序框架并设法建立一个在线存储库 我想知道的是 该框架是否提供某种 自动更新 机制 例如每次程序 系统启动时检查更新的插件 服务 检查更新就足够了 因为安装本身可以使用维护工具完成 关于这个话题 我能找到的只有这么
  • 互联网上的 C# 套接字

    我成功地用 C 制作了一个在 LAN 下完美运行的客户端服务器程序 我们使用了 TcpListener 和 TcpSocket 类 不过 我们无法让它在互联网上工作 我知道这与防火墙 路由器端口阻塞等有关 我们转发了我们使用的端口并关闭了防
  • mrjob:该示例如何自动知道如何在文本文件中查找行?

    我试图更好地理解 mrjob 的示例 from mrjob job import MRJob class MRWordFrequencyCount MRJob def mapper self line yield chars len lin
  • 从 Facebook 获取所有用户和用户朋友的视频并将其存储在数据库中

    我正在使用 Rails 我需要从 Facebook 获取所有用户视频和用户朋友的视频并将其存储在我们的数据库中 视频就像 用户和用户朋友喜欢的视频 用户和用户朋友分享的视频 用户和用户朋友标记的视频 用户和用户朋友评论的视频 用户及用户好友
  • 为什么我应该将 RSpec 或 shoulda 与 Rails 一起使用?

    我正在设置一个 Rails 应用程序 刚刚完成一些单元测试 我的朋友说显然固定装置不再酷了 人们现在使用 RSpec 或 Shoulda 我想知道使用这些其他工具包的实际好处是什么 任何信息都值得赞赏 fREW 相比 RSpec 我个人更喜
  • 当我点击图标时打开抽屉反应导航版本5

    我想在单击 headerLeft 部分中的图标时打开抽屉 我也尝试了 this props navigation dispatch 但给出了错误 navigation dispatch 也给出了错误 下面的代码不会给出错误 但不会打开抽屉