Как мне разделить состояние между реагирующими родными экранами? - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь создать приложение с реагирующей нативной и реагирующей навигацией, чтобы изменение чего-либо на одном экране изменило его на другом.

Пока что единственный способ синхронизировать данные между двумя экранами - использовать кнопки с onPress={() => navigate('OtherScreen', this.state)}. Это имеет две проблемы. Во-первых, это работает только там, где я явно вызываю навигацию - когда я провожу пальцем, чтобы изменить экран, он не будет передавать данные. Но в большинстве случаев это просто противоречит философии реакции, согласно которой данные должны извлекаться из модели с помощью вызова рендеринга, а не из одного метода рендеринга, передающего данные в другой компонент.

Это полностью поставило меня в тупик. Мое текущее «решение» - записать все приложение в одном файле, чтобы все было в одной области, и я мог использовать глобальную переменную для хранения глобального состояния.

Я не могу быть первым, кто столкнулся с этой проблемой, и мне трудно представить, что у реакционно-родного не было бы какого-либо встроенного метода для определения хранилища данных в масштабе приложения.

Существует ли стандартная схема общего доступа к данным в реагирующей нативе?

Как мне синхронизировать данные между двумя экранами?

1 Ответ

0 голосов
/ 02 июля 2018

Вы можете использовать Context или Redux для совместного использования между контейнерами (экранами) или компонентами.

Контекст предназначен для обмена данными, которые можно считать «глобальными» для дерево компонентов React, таких как текущий аутентифицированный пользователь, тема или предпочитаемый язык.

Redux - это контейнер с предсказуемым состоянием для приложений JavaScript.

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