Реагировать на собственные действия навигации - PullRequest
0 голосов
/ 17 мая 2018

У меня проблема с навигацией из другого скрипта (экрана) ... Я реализовал навигацию в App.js (с createStackNavigator и с экранами). Все отлично работает, когда я хочу перейти (с OnPress{() => navigate("someScreen")} на экран, который определен в этом сценарии (App.js).

Но когда я хочу использовать эту навигацию из другого скрипта (за исключением App.js), скажем, в «NewPage.js» который имеет собственный "export default class NewPage ..." и внутри у меня есть элемент кнопки, задача которого состоит в том, чтобы перейти "onPress" к экрану, который определен в App.js stackNavigator ...

Я знаю, что больше не могу использовать navigate("pageName"), потому что навигация не реализована в этом скрипте, и я попытался с помощью import { NavigationActions } from 'react-native' и внутри элемента кнопки, я попытался с кодом: "this.props.navigation.navigate('somePage')", и он не работает .

Так что я не знаю, как использовать свойство навигации из другого скрипта, в котором не реализована навигация, как ссылаться на / экспортировать / импортировать это свойство?

Вот код скрипта App.js: https://pastebin.com/tLEFdQrE и скрипт NewPage.js: https://pastebin.com/aVQGiinJ

Этот код короткий, чтобы вы могли легко увидеть, что я хочу и в чем проблема ...

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Вы должны импортировать свои страницы [используя имена экспортированных компонентов, а не имена файлов js] в ваши App.js.

Например, я сохранил свои страницы в папке с именем 'экрановПоэтому, когда я импортировал свой «домашний» экран, я использовал

import HomeScreen from './screens/HomeScreen.js';

, который далее назывался

Home: HomeScreen,

Удачи!

0 голосов
/ 17 мая 2018

Используйте это для лучшей навигации по экрану по сравнению с навигацией по умолчанию, это лучше для навигации по экранам.Мы в основном используем это, чем другие навигатор

https://github.com/aksonov/react-native-router-flux

...