Сохранение стековой навигации между собственным и реагирующим экранами Android с помощью реагирующей навигации - PullRequest
0 голосов
/ 06 июня 2019

Мой сценарий:

Рассматривайте активность Android как screen A и стек react-navigation в настоящее время в screen B.

screen B звонит screen A с использованием NativeModules.ScreenA.startActivityForResult(), и я могу await для любого результата screen A отправляет обратно screen B.

Но вместо того, чтобы screen B появляется снова, мое приложение возвращается к корневому экрану (первый экран стека реагирующей навигации).

Моя реализация startActivityFoResult() и onBackPressed() на screen A

@ReactMethod
public void startActivityForResult(ReadableMap data, Promise promise) {
  Activity activity = getReactApplicationContext().getCurrentActivity();

  Intent intent = new Intent(getReactApplicationContext(), ScreenAView.class);
  intent.putExtras(Arguments.toBundle(data));

  mPlayerPromise = promise;

  activity.startActivityForResult(intent, REQUEST_CODE);
}
@Override
public void onBackPressed() {
  super.onBackPressed();

  Intent intent = getIntent();

  intent.putExtra("data", data);
  setResult(RESULT_OK, intent);

  finish(); // destroy Intent and back to React Native
}

И вот как я разрешаю данные, поступающие с screen A в screen B.

try {
  const data = await NativeModules.ScreenA.startActivityForResult();
  // use data coming from screen A here
} catch (error) {
  // catch errors from screen A activity
}

У меня есть модуль, пакет и вид, настроенные правильно в соответствии с исходной документацией. Но я не знаю, как получить правильный стек реагирующей навигации, когда возвращаюсь с native -> react-native.

Я что-то упустил или это так работает?

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