问题标签 [react-navigation-drawer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7922 浏览

react-native - 如何在抽屉导航器内的堆栈导航器中通过 backButton 返回

我有多个屏幕,每个屏幕都是 stackNavigator。任何创建的 stackNavigator 都在抽屉内。在每个屏幕中,当按下 stackNavigator 标题的 BackButton 时,屏幕总是导航到 initialRoute 而不是回到最后一个屏幕。

我测试了navigation.goBack()and navigation.goBack(null)and and navigation.goBack()andnavigation.goBack(this.props.navigation.state.key)}

但这些都不起作用。这是我的代码:

我有多个屏幕导航器,例如菜单导航器:“加载”、“主页”、...屏幕。在继续我有抽屉导航器:

然后我创建了drawerNavigator:

0 投票
0 回答
44 浏览

javascript - 抽屉未在本机中打开

我在材质顶部导航中使用抽屉导航。

这是我的抽屉导航代码

这是我的标签导航

我在 createStacknavigator 中调用这两个

并在切换导航器中迭代这些组件

这是我的抽屉自定义组件

但是抽屉导航没有出现在屏幕上。我在这里做错了什么?

0 投票
1 回答
76 浏览

react-native - 在抽屉导航中显示动态信息 - React Native

我想在抽屉导航的标题中显示登录的用户名。我将从异步存储或 API 中获取用户名。这就是我的 DrawerNavigator 代码的样子。我正在我的 AppNavigator 中创建它。

DrawerHeader 是一个单独的类,我尝试在其中获取用户名。这就是这个类的样子

但这只是在标题中显示“无用户 ID”。我已经确认 user_id 存在于异步存储中。这种方法有什么问题?

0 投票
2 回答
5613 浏览

javascript - 退出抽屉内的子堆栈导航器时,如何使用 react-navigation 转到 initialRoute?

我用 react-native、expo 和 react-navigation 构建了一个应用程序。我有一个主抽屉导航器,其中有 2 个其他堆栈导航器。一个堆栈导航器有 2 页;Products和产品。当我点击页面中的一个产品时Products,它会进入Product页面。Ben 如果我单击抽屉导航器中的另一个链接,我希望产品页面的堆栈导航器在离开堆栈导航器时返回到它的初始路由。

当我退出堆栈导航器时,我尝试设置初始状态,当我单击抽屉导航器中的导航器链接时,它会呈现初始状态,但是当我在子页面中并退出导航器时它不起作用。当我在抽屉中再次单击时,它没有Products导航到Products页面,而是停留在Product.

我可以在我的抽屉导航器中创建静态链接并使用this.props.navigation.navigate总是去this.props.navigation.navigate('Products'),但这将是我想要的最后一件事。我真的很喜欢我的抽屉导航器与我传递给它的东西保持动态。

this.props.navigation.navigate当生命周期继续时,我尝试过componentWillUnmount,但没有奏效。

我怎样才能做到这一点?

谢谢您的帮助!

0 投票
2 回答
3337 浏览

react-native - 为什么 Navigation.goBack() 无法正常工作?

我正在使用以下方式创建导航系统

StackNavigator -> DrawerNavigator ->(屏幕 A、屏幕 B、屏幕 C)

屏幕 A 是初始路线

屏幕 A 到屏幕 B 使用

屏幕 B 到屏幕 C 使用

在屏幕 C

这里有什么问题。

请帮帮我谢谢。

0 投票
1 回答
3276 浏览

react-native - react-navigation标签导航器特定标签按钮的自定义导航操作

我想从选项卡上的特定按钮打开抽屉(例如选项菜单),而不是导航到屏幕。我目前的解决方案是在 react-navigation v2 上工作,但是当我们从 v2 升级到 react-navigation 的 v3 和从 v57 升级到 react-native 的 v60 时,该解决方案已经停止工作。

选项卡栏中的菜单选项卡按钮分配了一个虚拟屏幕,我正在使用tabBarOnPress(). 该方法打开抽屉,如果它与菜单按钮的路由名称匹配,则返回,否则它会导航。似乎选项卡导航器正在导航到虚拟屏幕,无论我分配什么方法tabBarOnPress()并且该方法也被调用。

以下是在 v2 中运行良好但在 v3 中停止运行的当前代码:

0 投票
1 回答
2182 浏览

react-native - 导航抽屉未打开且未找到 toggleDrawer

尝试使用 React-Navigation 创建抽屉。

使用React Native 0.59, Installed R eact-Navigation 3.x, 已完成链接 react- native link react-native-gesture-handler

使用 React-Navigation 创建路由,称为 Route.js:

然后在标题中,抽屉图标:

它给了我错误:toggleDrawer() 未定义。

然后我将其更改为:

现在,没有错误,但抽屉没有打开。

0 投票
1 回答
2217 浏览

json - 需要在 React Native 中将项目动态添加到抽屉菜单中

在从 json 文件 ( https://www.rallyssimo.it/wp-json/wp/v2/categories )中获取某些类别后,我需要在我的应用程序的抽屉中动态放置一些项目

json 示例(我需要该信息)

这是抽屉:

如何将项目(我将从 JSON 中获取)放入抽屉中?

0 投票
0 回答
381 浏览

react-native - 从 React Native 中的抽屉菜单更新 Stack Navigator 屏幕的状态

我已经使用反应导航在反应本机应用程序中创建了一个抽屉导航菜单,并添加了几个屏幕,如屏幕 1,2...等。现在在我的抽屉菜单中,我有应用程序图标,下面有抽屉菜单,所以现在按下这个图标我需要重新渲染屏幕 1。

在此处输入图像描述

0 投票
0 回答
731 浏览

javascript - 在我重新启动应用程序之前,导航抽屉不会刷新

我对 React Native Navigation Library 有问题,问题是我在我的应用程序中实现了注销,忘记了 AsyncStorage presistent 数据,当我登录到另一个帐户而不重新启动应用程序时问题开始了,我发现导航抽屉没有感觉AsyncStorage 的变化虽然我根据 AsyncStorage 的返回值更新状态,就好像它被缓存一样,所以我想要一种方法来刷新导航绘制或刷新导航抽屉缓存视图,一旦我注销并重新登录到另一个帐户以更改名称和缩略图内容。

我试图找到可以用我自己的逻辑替换的任何事件侦听器或任何回调,但我没有找到任何密切相关的东西。我还尝试直接用 axios 调用替换 AsyncStorage 以获取用户,但没有任何效果。

我的导航器代码:

预期的是,当我注销并使用另一个帐户重新登录时,会在抽屉中看到当前用户的姓名和照片。

实际行为是导航抽屉缓存抽屉的自定义组件,当我与另一个用户登录时,我会看到前一个用户的信息。