【问题标题】:How to change root in react-native-router-flux?如何更改 react-native-router-flux 中的根目录?
【发布时间】:2018-04-07 12:29:12
【问题描述】:

我正在使用 react-native-router-flux v4,这是我的路由器组件:

const RouterComponent = () => {
  return (
    <Router>
      <Scene key="root">
        <stack key="auth">
          <Scene
            key="login"
            component={LoginForm}
            title="Please Login"
          />
        </stack>
        <stack key="main">
          <Scene
            key="RestaurantListing"
            component={RestaurantListing}
            title="Restaurants available"
          />
        </stack>
      </Scene>
    </Router>
  )
};

当我转到 main 时,我看到“RestaurantListing”组件,但我仍然在顶部导航中看到后退箭头(

我不希望用户能够返回身份验证页面,我该怎么做?

【问题讨论】:

    标签: react-native react-native-router-flux


    【解决方案1】:

    您应该首先将 hideNavBar 作为道具添加到场景 RestaurantListing,或者如果 main 的子项都不会使用导航栏,则可以将其添加到 main。您还需要从 'react-native-router-flux' 导入 ActionConst 并将 main 的 type 属性设置为 ActionConst.RESET 重置堆栈,从而从后台堆栈中删除您的身份验证页面。

    import { Scene, Router, ActionConst } from 'react-native-router-flux';
    
    const RouterComponent = () => {
      return (
        <Router>
          <Scene key="root">
            <stack key="auth">
              <Scene
                key="login"
                component={LoginForm}
                title="Please Login"
              />
            </stack>
            <stack key="main" type={ActionConst.RESET}>
              <Scene
                key="RestaurantListing"
                component={RestaurantListing}
                title="Restaurants available"                
                hideNavBar
              />
            </stack>
          </Scene>
        </Router>
      )
    };

    【讨论】:

    • 亲爱的 Joe,非常感谢您回答这个问题,但这个问题是 6 个月前提出的。面对这个问题,我选择了 react-navigation lib,除了它也受到 react-native 和 redux 支持的另一个原因。我真的不想确认这是正确的答案,除非其他人尝试并确认它有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多