Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将不同的道具传递到导航器中的不同屏幕?_Javascript_React Native_React Navigation - Fatal编程技术网

Javascript 如何将不同的道具传递到导航器中的不同屏幕?

Javascript 如何将不同的道具传递到导航器中的不同屏幕?,javascript,react-native,react-navigation,Javascript,React Native,React Navigation,我正在尝试创建一个带有不同类别过滤器的新闻应用程序。为了做到这一点,我必须将道具传递到导航器中的不同屏幕,以便组件可以将道具用于fetchapi。 例如: export default createMaterialTopTabNavigator({ Home: { screen: HomeScreen, navigationOptions:{ tabBarLabel: "Home", }, props

我正在尝试创建一个带有不同类别过滤器的新闻应用程序。为了做到这一点,我必须将道具传递到导航器中的不同屏幕,以便组件可以将道具用于fetchapi。 例如:

export default createMaterialTopTabNavigator({
    Home: {
        screen: HomeScreen,
        navigationOptions:{
            tabBarLabel: "Home",
        },
        props: {id: 1}
    },
    BeautyScreen: {
        screen: HomeScreen,
        navigationOptions:{
            tabBarLabel: "Beauty tips",
        },
        props: {id: 2}
    },
    BusinessScreen: {
        screen: HomeScreen,
        navigationOptions:{
            tabBarLabel: "Business related",
        },
        props: {id: 3}
    },
    CarsScreen: {
        screen: HomeScreen,
        navigationOptions:{
            tabBarLabel: "Cars related",
        },
        props: {id: 4}
    },
)}
正如您所看到的,我可以使用相同的
主屏幕
组件和不同的道具,我可以传入api,例如:
fetch(“https://some-api.com/?category=“+navigations.props.id)

这就是我现在所拥有的,我必须为不同的屏幕创建不同的组件,基本上相同的组件具有不同的api

export default createMaterialTopTabNavigator({
    Home: {
        screen: HomeScreen,
        navigationOptions:{
            tabBarLabel: "Home",
        }
    },
    BeautyScreen: {
        screen: BeautyScreen,
        navigationOptions:{
            tabBarLabel: "Beauty tips",
        }
    },
    BusinessScreen: {
        screen: BusinessScreen,
        navigationOptions:{
            tabBarLabel: "Business related",
        }
    },
    CarsScreen: {
        screen: CarsScreen,
        navigationOptions:{
            tabBarLabel: "Cars related",
        }
    },

我刚刚发现react navigation v3支持此功能

BeautyScreen: {
    screen: OtherCategoriesScreens,
    navigationOptions:{
        tabBarLabel: "Beauty",
    },
    params: {
        categories: [
            {
                name: "Fashion",
                id: 144,
            },
            {
                name: "Make up",
                id: 143,
            },
        ]
    }
},

然后您可以在屏幕组件中使用
this.props.navigation.getParam('categories')
来获取参数。

我刚刚发现react navigation v3支持此功能

BeautyScreen: {
    screen: OtherCategoriesScreens,
    navigationOptions:{
        tabBarLabel: "Beauty",
    },
    params: {
        categories: [
            {
                name: "Fashion",
                id: 144,
            },
            {
                name: "Make up",
                id: 143,
            },
        ]
    }
},
然后可以在屏幕组件中使用
this.props.navigation.getParam('categories')
来获取参数