使用React Native Router Flux / Redux保护路由(场景)

dsvorc41

我试图确保如果用户当前未登录,则始终将其发送到登录页面。我正在使用Redux来存储当前用户ID,所以这不是问题。主要问题是,无论我在路由器文件中进行了哪些检查,当我导航到所有页面时,该应用程序都会显示所有页面。任何帮助将不胜感激。

 <Router sceneStyle={{ paddingTop: 65 }}>
  <Scene 
    key="splash" 
    component={Splash} 
    title="App" 
    timeout={500} 
    nextScene={'main'} 
    initial 
  />

  <Scene key="auth" >
    <Scene key="login" component={LoginForm} title="Please Login" />
  </Scene>

  <Scene key="profile">
    <Scene key="profilePage" component={ProfilePage} title="My Profile" />
  </Scene>

  <Scene key="main" >
    <Scene
      key="subscribedList"
      component={SubscribedList}
      title="Choose A List"
    />
    <Scene
      key="itemsList"
      component={ItemsList}
      onBack={() => Actions.subscribedList()}
    />
    <Scene
      key="createList"
      component={CreateList}
      title="Create A List"
    />
    <Scene
      key="createItem"
      component={CreateItem}
      title="Create Item"
    />
    <Scene
      key="compareItem"
      component={CompareItem}
      title="Found Item"
    />
  </Scene>
</Router>
丹尼

我正在路由器通量文档中使用Switch:https :
//github.com/aksonov/react-native-router-flux/blob/master/docs/OTHER_INFO.md

  handlePressPurchases = () => {
     Actions.account({section: 'purchases'})
   }



    import { connect } from 'react-redux'

    <Scene
             key="account"
             component={connect(state=>({isAuth: state.login.username != null }))(Switch)}
             tabs={true} 
             unmountScenes
             selector={props=> !props.isAuth ? "login_account" : props.section }
         >
             <Scene key="login_account" component={LoginScreen} title="Login"/>
             <Scene key='purchases' component={Purchases} title='Purchases'  navBar={AppNavBar} />
             <Scene key='balance' component={Balance} title='Balance'  navBar={AppNavBar} />
    </Scene>

第二种替代方法是在每个场景组件中基于authState使用Actions.login()重定向。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React Native Router Flux:从主场景导航到子场景

在 React Native Router Flux 中跨主要场景导航

react-native-router-flux将道具传递给场景

React Router JWT保护路由

React Native Router Flux:使用相同场景但使用其他参数的转换和历史

如何使用 react-native-router-flux 设置作为选项卡子项的场景的标题

使用React Native Router Flux在所有场景中维护选项卡

如何使用 react-native-router-flux 在每个场景中处理 backAndroidHandler

如何设置react-native-router-flux?

使用React Native Router Flux的延迟加载屏幕

使用react-native-router-flux自定义navBar

转到子场景选项卡-react-native-router-flux

react-native-router-flux-特定路由负载上的触发功能

如何将react-native-router-flux与react-native-drawer结合使用

react-native-router-flux,重载时保持状态

在 react-native-router-flux 上从堆栈中弹出导航

如何配置 react-native-router-flux android back history?

React-native-router-flux动态更新rightButtonImage

在 react-native-flux-router 中传递道具

React-Native-Router-flux防止多次点击

react-native:如何结合 react-native-router-flux 和 react-native-drawer?

未找到 React Native 模塊:無法使用 react-native-router-flux 解析“@react-navigation/core”

使用react-native-router-flux将数据从屏幕发送到Tab屏幕

使用React Native Router Flux将道具传递到TabIcon中

使用 react-native-router-flux 无法正确显示导航栏和选项卡

在react-native-router-flux中使用Actions.reset(“ key”)时,会影响组件的因素

react-native-router-flux:在选项卡之间进行切换时,如何防止“选项卡场景”历史记录堆栈被重置?

单击选项卡图标时,我想更改react-native-router-flux场景中的选项卡图标颜色

使用 Firebase 保护路由