Android React本机抽屉与React本机路由器流量设置不工作

Android React本机抽屉与React本机路由器流量设置不工作,android,react-native-router-flux,react-native-drawer,Android,React Native Router Flux,React Native Drawer,我正在尝试使用react native router flux设置react native抽屉 我已经在通量文件中设置了抽屉,如下所示 import React from 'react-native'; import Drawer from 'react-native-drawer'; import SideMenu from './SideMenu'; import {Actions, DefaultRenderer} from 'react-native-router-flux'; exp

我正在尝试使用react native router flux设置react native抽屉

我已经在通量文件中设置了抽屉,如下所示

import React from 'react-native';
import Drawer from 'react-native-drawer';
import SideMenu from './SideMenu';
import {Actions, DefaultRenderer} from 'react-native-router-flux';

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={true}
                openDrawerOffset={0.2}
                panCloseMask={0.2}
                negotiatePan={true}
                tweenHandler={(ratio) => ({
                 main: { opacity:Math.max(0.54,1-ratio) }
            })}>
                <DefaultRenderer navigationState={children[0]} onNavigate={this.props.onNavigate} />
            </Drawer>
        );
    }
}
从“React native”导入React;
从“反应本机抽屉”导入抽屉;
从“./SideMenu”导入侧菜单;
从“react native router flux”导入{Actions,DefaultRenderer};
导出默认类NavigationDrawer扩展组件{
render(){
const state=this.props.navigationState;
const children=state.children;
返回(
Actions.refresh({key:state.key,open:true})
onClose={()=>Actions.refresh({key:state.key,open:false})
type=“置换”
内容={}
tapToClose={true}
OpenDrawerofset={0.2}
panCloseMask={0.2}
negotiatePan={true}
tweenHandler={(比率)=>({
main:{opacity:Math.max(0.54,1-ratio)}
})}>
);
}
}
然后我将抽屉场景放在路由器组件中,如下所示

render() {
    return (
        <Router>
            <Scene key="choice" component={ServiceChoice} title="" hideNavBar />
            // some scenes go here

            <Scene key="drawer" component={NavigationDrawer} open={false} >
                <Scene key="main" tabs={true} >
                   <Scene 
                       key="map" 
                       component={MapScreen} 
                       title="" 
                       hideNavBar 
                       initial 
                    />
                </Scene>
            </Scene>

            //some other scenes go here
        </Router>
    );
}
render(){
返回(
//这里有一些场景
//这里还有其他一些场景
);
}
现在的问题是,从另一个组件,例如ServiceChoice,如果我执行
Actions.map()
,什么都不会发生

谁能告诉我我做错了什么?我可以提供任何其他需要的信息。所有的进口都是正确的


谢谢

,所以我最终使用的解决方案是让抽屉组件包围路线

...
import Drawer from 'react-native-drawer';
...

<Drawer
          ref={(ref) => { this.props.appDrawerSet(ref); }}
          open={false}
          type="overlay"
          onOpen={() => { console.log('drawer OPENED'); }}
          onClose={() => { console.log('drawer CLOSED'); }}
          content={<SideMenu />}
          tapToClose
          openDrawerOffset={0.2}
          panCloseMask={0.2}
          negotiatePan
          styles={drawerStyles}
          tweenHandler={(ratio) => ({
            main: { opacity: Math.max(0.54, 1 - ratio) }
          })}
      >
              <Router
                  sceneStyle={styles.sceneStyle}
                  navigationBarStyle={styles.navBarStyle}
                  titleStyle={styles.titleStyle}
              >
                 <Scene key='root'>
                     //your other scennes, nested or not
                 </Scene>
              </Router>
 </Drawer>

我的应用程序用例使用抽屉组件上的
tapToClose
选项,而不是close()函数,这在现实生活中通常更多地用于关闭侧抽屉

this.props.appDrawer.open()
this.props.appDrawer.close()