通过React-Navigation传递获取数据

时间:2018-09-21 10:39:10

标签: javascript reactjs react-native state react-navigation

我想知道我在React Native(仍在学习)中开发的应用程序有什么问题。

我在屏幕3上看到了axiosAPI所获得的产品列表,以及一些交互信息(可以使用某些PickerItem筛选产品,...)

在屏幕1上,我有一个项目列表,并用onPress得到了按下元素的值。 然后,我想用navigateparams传递此信息以转到屏幕3并过滤我的产品,以便仅显示具有所选值的产品。

例如,如果在屏幕3上显示:矩形,三角形,圆形,正方形。我在屏幕1上只选择了圈子,然后将其传递到屏幕3以仅显示圈子产品。

您认为有可能吗?我仍然遇到React-Navigation的一些问题,但是它的工作原理非常酷。 并且您认为最好重用Screen 3,还是应该创建另一个componentScreen来接收并显示数据?

HomeScreen to navigate to screen1, 2 or 3

编辑

我正在用React-Navigation做类似的事情来访问Screen3

const LabelsNavigator = createStackNavigator(
{
    Screen1: LabelScreen,
    Screen3: CatalogScreen,
},
{
    navigationOptions: {
        header: null
    }
});
const CatalogNavigator = createStackNavigator({
    Screen3: CatalogScreen
});
const AppNavigator = createStackNavigator(
{
    App: HomeScreen,
    Screen3: CatalogNavigator,
    Screen1: LabelsNavigator,
},
{
    initialRouteName: "App",
    navigationOptions: {
        headerTitle: <Header/>
    }
}

);

作为信息,目前,我的axios调用API仅在屏幕3中。我应该将其移至App.js吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

为了仅使用React Navigation使其保持“简单”,我只是对一些组件和应用程序的状态进行重新排序。

我正在使用装载程序将Axios Api Call放入App.js中,然后可以在三个屏幕之间导航并像这样发送数据:

this.props.navigation.navigate('Catalog', { ...this.state.filteredArray })

一切正常。非常感谢您的任何建议。

当第一个版本发布时,我想我将使用Redux开发我的应用v2