Реагируйте на родную навигацию на одну и ту же страницу с разными реквизитами - PullRequest
1 голос
/ 23 июня 2019

Я работаю над приложением RN, в котором используется боковой ящик. (Версия RN: 0.59.8)

const DrawerNavigator = createDrawerNavigator(
    {
        Home: {
            screen: HomeScreen
        },
        Poems: {
            screen: PoemsScreen
        },
        Contest: {
            screen: ContestScreen
        },
        AboutMe: {
            screen: AboutMeScreen
        }
    },
    DrawerConfig
);

export default createAppContainer(DrawerNavigator);

Используемая версия реагирующей навигации: 3.11.0. В меню несколько подпунктов указывают на одну и ту же страницу, ViewPager, но с разными параметрами (индекс страницы). Проблема в том, что ничего из нижеприведенного не сработало:

  1. пытается использовать push вместо навигации (возвращается _this2.props.navigation.push is not a function)
  2. пытается сбросить соответствующий стек.
const resetAction = StackActions.reset({
   index: 0,
   key: 'Poems',
   actions: [NavigationActions.navigate({ routeName: 'Poems' })]
})
this.props.navigation.dispatch(resetAction)

(также пытался с key: null)

Любая помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

добавить данные для навигации по функции

this.props.navigation.navigate('routeName', { data })

например: this.props.navigation.navigate('BookDetails', { book: this.props.book })

0 голосов
/ 26 июня 2019

Попробуйте прочитать https://reactnavigation.org/docs/en/navigating.html#navigate-to-a-route-multiple-times

вам нужно использовать navigation.push () для запуска копий вашего компонента с разными параметрами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...