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

房地产

我正在尝试react-native-router-fluxreact-native-drawer

我的主要组件实际上是App.js我只复制/粘贴相关部分。

import AppRoutes from './Router';
...
constructor(props) {
    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        Actions.mainBucket({ type: 'reset' });
      } else {
        Actions.authBucket({ type: 'reset' });
      }
    });
    super(props);
  }
}
...
  render() {
    const store = createStore(
      reducers, 
      {}, 
      applyMiddleware(ReduxThunk)
    );

    return (
      <Provider store={store}>
        <AppRoutes />
      </Provider>
    );
  }

这是Router.js

const scenes = Actions.create(
  <Scene key="root" hideNavBar open={false} >
    <Scene key="splashBucket">
      <Scene key="splashScene" component={SplashScreen} title="Splash Screen Title" hideNavBar />
    </Scene>
    <Scene key="authBucket">
      <Scene key="authScene" component={AuthForm} title="Accesso" hideNavBar={false} />
    </Scene>
    <Scene key="mainBucket" hideNavBar={false}>
      <Scene key="schedule" component={Schedule} title="Impegni"  />
      <Scene key="peopleList" component={PeopleList} title="Lista pesone"/>
    </Scene>
  </Scene>
);

const AppRoutes = () => (
  <Router 
    sceneStyle={{ paddingTop: 65 }} 
    scenes={scenes}
  />
);

export default AppRoutes;

我的目标是使用键“mainBucket”将 SideDrawer 添加到 Scene 存储桶中。,因为,正如您所看到的,这是/将是我的应用程序的主要部分,并且用户会自动重定向到这个使用 firebase 实现自动登录的存储桶。

自动登录和打开 mainBucket 有效。

要开始添加 sidedrawer,我认为 sidedrawer 内容组件最初只会呈现一个<Text>usingSideMenu组件

我必须如何进行?

我创建了以下两个文件。

第一个是 NavigationDrawer.js

export default class NavigationDrawer extends Component {
  render() {
    const state = this.props.navigationState;
    const children = state.children;
    return (
      <Drawer
        ref="navigation"
        open={state.open}
        onOpen={() => Actions.refresh({ key: state.key, open: true })}
        onClose={() => Actions.refresh({ key: state.key, open: false })}
        type="displace"
        content={<SideMenu />}
        tapToClose
        openDrawerOffset={0.2}
        panCloseMask={0.2}
        negotiatePan
        tweenHandler={(ratio) => ({
          main: { opacity: Math.max(0.54, 1 - ratio) }
        })}
      >
        <DefaultRenderer navigationState={children[0]} onNavigate={this.props.onNavigate} />
      </Drawer>
    );
  }
}

第二个是近乎空的 SideMenu.js

import React from 'react';
import { View, Text } from 'react-native';

const SideMenu = () => (
  <View>
    <Text> 
      SideMenu
    </Text>
  </View>
);

export default SideMenu;

然后我尝试修改场景定义,将 NavigationDrawer 组件添加到 mainBucket 定义中

<Scene key="mainBucket" component={NavigationDrawer}>
  <Scene key="schedule" initital component={Schedule} title="Impegni" hideNavBar={false} />
  <Scene key="peopleList" component={PeopleList} title="Lista persone" hideNavBar={false} />
</Scene>

问题是我再也看不到带有标题的 react-native-router-flux 标题,所以我没有更多的顶部操作栏。

我究竟做错了什么'?

房地产

这有效。我用另一个场景包裹了整个 mainBucket,在这个场景中我使用抽屉作为组件。

另请注意,我将样式移至单个场景

const scenes = Actions.create(
  <Scene key="root">

    <Scene key="splashBucket">
      <Scene key="splashScene" component={SplashScreen} title="Splash Screen Title" hideNavBar />
    </Scene>

    <Scene key="authBucket" sceneStyle={{ paddingTop: 65 }}>
      <Scene key="authScene" component={AuthForm} title="Accesso" hideNavBar={false} />
    </Scene>

    <Scene key="mainBucket" component={NavigationDrawer}>
      <Scene key="mainBucketInternal">
        <Scene 
          initital
          key="schedule" 
          component={Schedule} 
          title="Impegni" 
          hideNavBar={false} 
          sceneStyle={{ paddingTop: 65 }} 
        />
        <Scene 
          key="peopleList" 
          component={PeopleList} 
          title="Lista persone" 
          hideNavBar={false} 
          sceneStyle={{ paddingTop: 65 }} 
        />
      </Scene>
    </Scene>

  </Scene>
);

const AppRoutes = () => (
  <Router 
    scenes={scenes}
  />
);

export default AppRoutes;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

React Native Drawer和Tab Navigator

来自分类Dev

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

来自分类Dev

结合React和React-Native

来自分类Dev

如何在 react-native-router-flux 中呈现常见的页眉和页脚?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

流星和React Native

来自分类Dev

React Native + react-native-router-flux:如何将hideNavBar应用于仅一个<Scene />?

来自分类Dev

如何通过 react-native-router -flux 在 react-native 中更新回(上一个)屏幕

来自分类Dev

如何将 ScrollView 与 react-native-router-flux 和 Grid,Col,Row 一起使用

来自分类Dev

react-native-router-flux,如何获取当前场景关键

来自分类Dev

使用带有redux的react-native-router-flux,如何更新视图组件中的状态?

来自分类Dev

我如何将react-native-router-flux与Relay集成在一起

来自分类Dev

我如何将react-native-router-flux与Relay集成在一起

来自分类Dev

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

来自分类Dev

android native和react native之间的通信

来自分类Dev

React Native和{flex:1}

来自分类Dev

React Native和require('http')

来自分类Dev

React Native和Firebase 3

来自分类Dev

React Native - android 和 iOS?

来自分类Dev

Promises 和 React Native 协助

来自分类Dev

Flex 和布局 (React Native)

来自分类Dev

在 React 和 React Native 中使用模型

Related 相关文章

  1. 1

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

  2. 2

    React Native Drawer和Tab Navigator

  3. 3

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

  4. 4

    结合React和React-Native

  5. 5

    如何在 react-native-router-flux 中呈现常见的页眉和页脚?

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

    流星和React Native

  14. 14

    React Native + react-native-router-flux:如何将hideNavBar应用于仅一个<Scene />?

  15. 15

    如何通过 react-native-router -flux 在 react-native 中更新回(上一个)屏幕

  16. 16

    如何将 ScrollView 与 react-native-router-flux 和 Grid,Col,Row 一起使用

  17. 17

    react-native-router-flux,如何获取当前场景关键

  18. 18

    使用带有redux的react-native-router-flux,如何更新视图组件中的状态?

  19. 19

    我如何将react-native-router-flux与Relay集成在一起

  20. 20

    我如何将react-native-router-flux与Relay集成在一起

  21. 21

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

  22. 22

    android native和react native之间的通信

  23. 23

    React Native和{flex:1}

  24. 24

    React Native和require('http')

  25. 25

    React Native和Firebase 3

  26. 26

    React Native - android 和 iOS?

  27. 27

    Promises 和 React Native 协助

  28. 28

    Flex 和布局 (React Native)

  29. 29

    在 React 和 React Native 中使用模型

热门标签

归档