react-native-router-flux:如何防止在选项卡之间更改时重置选项卡场景历史堆栈?

2024-05-01

我有一个Router设置 2 个选项卡场景:

  • Tab 1: have 2 navigable scenes (static screens);
    • 屏幕A:有一个按钮可以导航到Screen B;
    • 屏幕B:只要有文字;
  • Tab 2: just have 1 static screen.
    • 屏幕C:只要有文字;

代码如下。

app.js:

import React from 'react';
import { Router, Scene } from 'react-native-router-flux';
import Tab from '../tab';
import ScreenA from './a';
import ScreenB from './b';
import ScreenC from './c';


export default class App extends React.Component {
  render(){
    return (
      <Router>
        <Scene key="root">
          <Scene key="tabbar" tabs={true}>

            <Scene key="tab1" title="Tab 1" icon={Tab}>
              <Scene key="a" title="Screen A" component={ScreenA} />
              <Scene key="b" title="Screen B" component={ScreenB} />
            </Scene>

            <Scene key="tab2" title="Tab 2" icon={Tab}>
              <Scene key="c" title="Screen C" component={ScreenC} />
            </Scene>

          </Scene>
        </Scene>
      </Router>
    );
  }
}

屏幕也非常简单。

a.js:

export default class ScreenA extends React.Component {
  render(){
    return (
      <View>
        <Text>This is Screen A</Text>
        <TouchableHighlight onPress={() => Actions.b()}>
          <Text>Go to Screen B</Text>
        </TouchableHighlight>
      </View>
    );
  }
}

b.js:

export default class ScreenB extends React.Component {
  render(){
    return (
      <View>
        <Text>This is Screen B</Text>
      </View>
    );
  }
}

c.js:

export default class ScreenC extends React.Component {
  render(){
    return (
      <View>
        <Text>This is Screen C</Text>
      </View>
    );
  }
}

使用案例:

  • 应用程序渲染屏幕 A(在选项卡 1 中);
  • 单击屏幕 A 中的按钮:应用程序导航至Screen B(仍在选项卡 1 中);
  • 单击选项卡 2:应用程序导航至Screen C(在表 2 中)。
  • 单击选项卡 1:应用程序导航至Screen A(在表 1 中)和NOT正如预期的那样,到屏幕 B。

react-native-router-flux当我们返回选项卡时,不会保留选项卡的历史堆栈。或者我在这里做错了什么?

软件包版本:

  • 反应 v15.3.2
  • 反应本机 v0.34.1
  • 反应本机路由器-flux v3.36.0

事实证明这是一个错误反应本机路由器通量包,并且它被固定在这个拉取请求 https://github.com/aksonov/react-native-router-flux/pull/1312.

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

react-native-router-flux:如何防止在选项卡之间更改时重置选项卡场景历史堆栈? 的相关文章

  • Macbook React Native 安装

    npm WARN checkPermissions 缺少写入权限 usr local lib node modules npm 错误 路径 usr local lib node modules npm 错误 代码 EACCES npm 错误
  • 全屏编辑时React-native文本输入颜色问题

    In my react native android app This is the same text box in portrait Landscape views I have used selectionColor underlin
  • [“类型别名”只能在 .ts 文件中使用]

    我使用命令react native init 名称项目 然后打开vscode似乎有错误消息代码 图像 这就是你需要用 VS Code 做的事情 仔细观察 gif Steps to resolve error 1 Go to extensio
  • 这里是反应本机移动应用程序中的地图集成

    我正在尝试在react native项目中实现heremap api 搜索时得到了https www npmjs com package react native heremaps https www npmjs com package r
  • 如何计算 React-Native 中 MapView 组件的纬度和经度增量?

    我如何从 React Native 中的 MapView 组件的纬度和经度值计算增量纬度和增量经度值 谢谢 如果您有一个坐标数组并且想要一个适合所有这些点的区域 您可以执行以下操作 const regionContainingPoints
  • 类型错误:未定义不是对象(正在评估..)

    在 render 之前的控制台中 this state data1 length 没有给出任何错误 但是一旦我在视图标签中使用它 就会给出错误 类型错误 未定义不是对象 评估 this state data1 length 如果我从视图标签
  • borderRadius 未应用于 FlatList

    我有一个 FlatList 每当有人在 TextInput 中输入文本时就会显示它 我面临的问题是 borderRadius 适用于 iOS 但不适用于 Android 请参阅我的意思https gitlab com narcis11 jo
  • 如何使用多重身份验证 - firebase?

    我有一个注册屏幕 其中包含 用户名 电子邮件 电话号码 密码 在本例中 我使用电话号码身份验证来验证号码 因此在用户验证他的号码后 我将他的数据保存到 firebase DB 中 所以在那之后 我将下摆导航到登录屏幕 应该包含电子邮件 密码
  • 将本地图像路径作为两个功能组件之间的 prop 传递

    我正在使用 React Native 开发一个项目 在该项目中我很难理解 props 在功能组件之间的工作原理 我的要求是创建一个可重用的按钮组件 我可以在其中传递项目内资源文件中的图像位置 这样它就会为我创建按钮 由于某种原因 如果我手动
  • 在 Flex 中,React Native 会溢出

    因此 对于上面的图像 我试图让 绿色 框包围动态文本 请注意蓝色和黄色文本框是如何在flex row 配置 蓝色文本框位于flex 2黄色是flex 1 一切工作正常 直到文本对于父容器来说太大 我希望绿色容器能够根据需要生长以适应弯曲的内
  • 反应本机推送通知 onNotification 不会触发

    我正在使用 zo0r反应本机推送通知 https github com zo0r react native push notification图书馆 react 16 0 0 alpha 12 react native 0 45 1 rea
  • 图像未使用 require 加载本地文件

    我想加载本地图像 但是使用 require 方法它总是给我错误 在这种情况下我如何在 require 中传递 this props image my code Card js 我试过这个 class Card extends Compone
  • 删除某些屏幕的顶部导航栏

    有没有办法仅删除特定屏幕的顶部导航栏 我正在使用反应导航 我已经尝试过以下操作 header visible false 但它只隐藏导航栏 导航栏的空间仍然无法使用 提前致谢 我用headerShown像这样标记 import React
  • 可能未处理的承诺拒绝(id 0)类型错误 GET 或 HEAD 请求不允许主体

    import React from react import FlatList ActivityIndicator Text View from react native export default class FetchExample
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • 在 React Native 中调试应用程序崩溃

    我是 React Native 新手 我正在尝试安装 React Native Facebook SDK 以便我可以使用我的应用程序进行 Facebook 登录 我按照此处列出的步骤操作 https tylermcginnis com in
  • 如何删除原生选项卡的边框

    我需要删除图像中标记的边框 我正在使用react native 和native base 选项卡 我需要删除选项卡的底部边框
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • 无法解析“反应导航”

    当我安装并尝试使用react navigation 从 react navigation 导入 StackNavigator 时 我正在尝试react native并出现以下错误 Error https i stack imgur com
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码

随机推荐