Я использую RNN v3.7.0, и моей текущей ситуации нужна эта конкретная c функция, но, возможно, я неправильно ее проектирую.
У меня есть 3 основные вкладки, которые являются стеками, в одной из их, давайте назовем это # 2, когда приложение запускается впервые для вновь созданного пользователя, я проверяю права доступа к местоположению, конечно, это asyn c. В то же время, # 1 пытается получить данные при монтировании, но поскольку данные о местоположении еще не готовы, данные не будут получены из бэкэнда, потому что мне нужны эти значения lat
и long
.
Идея состояла бы в том, чтобы вызывать функцию, расположенную на экране № 1, всякий раз, когда экран № 2 заканчивает получать данные о местоположении асинхронно, поскольку также требуется, чтобы пользователь разрешил использование служб определения местоположения.
Есть ли способ добиться этого с помощью RNN v3? Пытаться подумать, возможно ли это с Redux, но не могу придумать, как это сделать, не кажется, что это нужно делать, потому что мне не нужен магазин для этого, это просто функция.
Это моя текущая структура стеков:
const startTabs = () => {
Navigation.setRoot({
root: {
bottomTabs: {
animate: true,
visible: false,
drawBehind: true,
waitForRender: true,
options: {
bottomTabs: {
animate: false,
elevation: 8,
titleDisplayMode: 'alwaysShow',
backgroundColor: commonStyles.WHITE
}
},
children: [
{
stack: {
id: 'HomeStack',
children: [
{
component: {
id: 'HomeTab',
name: 'myApp.HomeTab'
}
}
],
options: {
bottomTab: {
fontSize: 10,
text: i18n.t('home'),
icon: iconsMap['home-light'],
selectedIcon: iconsMap['home-solid'],
...navigatorStyle
}
}
}
},
{
stack: {
id: 'MyProfileTabStack',
children: [
{
component: {
id: 'MyProfileTab',
name: 'myApp.MyProfileTab'
}
}
],
options: {
bottomTab: {
fontSize: 10,
text: i18n.t('myProfile'),
icon: iconsMap['user-light'],
selectedIcon: iconsMap['user-solid'],
...navigatorStyle
}
}
}
},
{
stack: {
id: 'MessageTabStack',
children: [
{
component: {
id: 'MessageScreen',
name: 'myApp.MessageScreen'
}
}
],
options: {
bottomTab: {
fontSize: 10,
text: i18n.t('messages'),
icon: iconsMap['message-light'],
selectedIcon: iconsMap['message-solid'],
badgeColor: 'red',
...navigatorStyle
}
}
}
}
]
}
}
});
}
Теперь, имея эту структуру, разрешение местоположения обрабатывается в пользовательском ProfileScreen, и я хотел бы запускать функцию в HomeScreen всякий раз, когда местоположение хранится в БД.
Заранее спасибо.