React native 与React导航相结合的类似Snapchat的水平滚动视图

React native 与React导航相结合的类似Snapchat的水平滚动视图,react-native,react-native-android,react-navigation,react-native-ios,react-navigation-stack,React Native,React Native Android,React Navigation,React Native Ios,React Navigation Stack,我正在尝试创建一个类似于Snapchat前端的滚动视图,有3个屏幕。但是,我希望能够使用react-navigation的功能设置初始路线,以便每次主屏幕加载时,它都从中间屏幕开始,而不是从最左边的屏幕开始 这适用于react-native版本:0.57.1,以及react-navigation版本:3.0.9。当我将所有3个屏幕直接放在ScrollView组件中时,效果很好,但是我找不到一种方法来选择最初显示的屏幕 这里有一些类似于我的目标: const HomeScreenStack = c

我正在尝试创建一个类似于Snapchat前端的
滚动视图
,有3个屏幕。但是,我希望能够使用
react-navigation
的功能设置初始路线,以便每次主屏幕加载时,它都从中间屏幕开始,而不是从最左边的屏幕开始

这适用于
react-native
版本:
0.57.1
,以及
react-navigation
版本:
3.0.9
。当我将所有3个屏幕直接放在
ScrollView
组件中时,效果很好,但是我找不到一种方法来选择最初显示的屏幕

这里有一些类似于我的目标:

const HomeScreenStack = createStackNavigator({
    Goals: GoalsScreen,
    Dash: DashScreen,
    Plans: PlansScreen,
}, {
    initialRouteName: "Dash"
})

class HomeScreen extends React.Component {
    render() {
        return (
            <ScrollView
                horizontal={true}
                pagingEnabled={true}
                showsHorizontalScrollIndicator={false}
                showsVerticalScrollIndicator={true}>
                <HomeScreenStack />
            </ScrollView>
        )
    }
}

您不必使用
滚动视图
,而可以利用
反应导航
,并将
选项卡组件
置零。默认情况下,它已启用滑动导航

您还需要设置一个for
react导航,这就是错误的来源。
请注意,
AppContainer
只能在主入口点文件中使用一次,例如
App.js

从'react navigation'导入{createAppContainer,createMaterialTopTabNavigator}
常量HomeNavigator=createMaterialTopTabNavigator(
{
进球:进球屏幕,
Dash:DashScreen,
计划:计划筛选,
},
{
初始路线名称:“破折号”,
tabBarComponent:null
}
)
const AppContainer=createAppContainer(HomeNavigator)
类主屏幕扩展了React.Component{
render(){
返回(
)
}
}
Invariant Violation: Invariant Violation:
The navigation prop is missing for this navigator.
In react-navigation 3 you must set up your app container directly.
More info: https://reactnavigation.org/docs/en/app-containers.html