我正在使用react-navigation,我想在 Headers 和标签之间放置一个自定义组件,如下所示:

_______________
|  header     |
_______________
|  component  |
|             |
_______________
| tab1 | tab2 | 
_______________       
|             |
|    tab1     |
|             |
|             |
|             |
|             |
_______________

我关注了reactnavigation.org https://reactnavigation.org/docs/custom-navigators.html的文档 . 我创建了一个自定义导航器,并从react-navigation添加了TabBarTop .

这是我的代码:

import...

    const CustomTabRouter = TabRouter(
    {
    Info: { screen: ScreenRestaurantInfo},
    News: { screen: ScreenRestaurantNews},
    Menu: { screen: ScreenRestaurantMenu},
    Gallery: { screen: ScreenRestaurantGallery}
    },
    {
    backBehavior:'none'
    }
    );

    export default class ScreenRestaurant extends React.Component {
      render(){
      const { routes, index } = this.props.navigation.state;
      const Component = CustomTabRouter.getComponentForState(this.props.navigation.state);
        return(
        <ScrollView style={{flex:1}}>
        <Image style={{height:200}} source={header} />
        <TabBarTop {...this.props}/> 
        {/*<TabBarTop navigation={this.props.navigation} />*/}
        <Component navigation={addNavigationHelpers({...this.props.navigation,state: routes[index]})}/>
        </ScrollView>
    )
    }
    }

但是当我运行屏幕时它会告诉我:

TypeError: undefined is not an object (evaluating 'navigationState.routes')

This error is located at:
    in TabBar (at TabBarTop.js:144)
    in TabBarTop (at ScreenRestaurant.js:320)
    .....

根据我的理解,似乎TabBarTop没有从'react-native-tab-view'将navigationState props传递给TabBar . 但它在TabNavigator中使用时效果很好 .

任何的想法?谢谢 !