react navigation中使用多个StackNaviga

2018-04-19  本文已影响0人  六分

好处是可以让项目各模块结构更加清晰,也便于管理需要做modal跳转的页面,如login

app.js

// 主StackNavigator,里面可以加入别的StackNavigator模块,或者加入screen
const RoutersStack = StackNavigator(
  {
    authenStack:{
      screen: authenStack,
    },
    FinanceManageStack: {
      screen: FinanceManageStack,
    },
    Set: {
      screen: Set,
    },
  },
  StackNavigatorConfig({
    initialRouteName: 'authenStack',
  }),
);
//将HomeIndex和Login单独放在一起,login登录页可以实现modal跳转,如果有别的页面需要modal跳转,也可以单独新建一个StackNavigator来进行管理
const authenStack = StackNavigator({
  HomeIndex: {
    screen: HomeIndex,
  },
  Login:{
    screen:Login,
    navigationOptions:{
      headerTitle:'Login',
    }
  }
},{
  mode:'modal',
});
// 财务管理模块,放财务相关的,FinanceManageHomeIndex是财务管理首页。项目里面可以放多个这种StackNavigator进行管理
const FinanceManageStack=StackNavigator(
  {
    FinanceManageHomeIndex:{
      screen:FinanceManageHomeIndex
    },
    TransactionWithdrawGoWithdraw:{
      screen:TransactionWithdrawGoWithdraw
    },
    TransactionWithdraw:{
      screen:TransactionWithdraw
    }
  },
  StackNavigatorConfig({
    initialRouteName: 'FinanceManageHomeIndex',
  }),
)

  export default class App extends Component {
    componentDidMount() {

    }
    render () {
      return (
        <Provider rootStore={new RootStore()}>
          <RoutersStack />
        </Provider>
      )
    }
}

注意上面的StackNavigatorConfig是我自己写的一个方法,用来配置navigation的,这里可以不写这个方法,按照官网文档写自己的配置

管理页面跳转

我使用过的管理页面跳转主要有方式,

这里以第二种为例,大概都差不多:


为了弄这点东西,折腾了差不多一天,中间好几个坑,感谢竹子(https://blog.csdn.net/u010411264)的支持

上一篇下一篇

猜你喜欢

热点阅读