Передача данных через React-Navigation - PullRequest
0 голосов
/ 21 сентября 2018

Мне интересно кое-что с приложением, которое я разрабатываю в React Native (все еще учусь).

У меня есть экран 3 со списком продуктов, которые я получаю с axios и API и некоторые взаимодействия (я могу фильтровать свои продукты с помощью некоторого PickerItem, ...)

На экране 1 у меня есть список элементов, а с помощью onPress я получаю значение нажатого элемента.Затем я хотел бы передать эту информацию с помощью navigate и params, чтобы перейти на экран 3 и отфильтровать мои продукты, чтобы отображать только продукты с выбранным значением.

Например, если на экране 3Я показываю: прямоугольники, треугольники, круги, квадраты.Я выбираю только кружок на экране 1, а затем передаю его на экран 3, чтобы отображать только кружки.

Как вы думаете, это возможно?У меня все еще есть некоторые проблемы с React-Navigation, но довольно круто, как это работает.И вы думаете, что лучше повторно использовать Экран 3 или я должен создать другой компонент Screen для получения и отображения этих данных?

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 голосов
/ 25 сентября 2018

Чтобы сделать его "простым" с помощью только React Navigation, я просто переупорядочиваю некоторые компоненты и состояние моего приложения.

Я делаю свои Axios Api Call в свои App.js с помощьюзагрузчик, а затем я могу перемещаться между моими тремя экранами и отправлять свои данные так:

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

Все работает нормально.Большое спасибо за любые советы.

Когда выйдет первый релиз, думаю, я сделаю свое приложение v2 с Redux

...