使用react-navigation

时间:2019-06-06 14:55:20

标签: android react-native react-navigation react-navigation-stack

我的情况是:

将Android活动视为screen A,并将react-navigation堆栈当前存储在screen B中。

screen B使用screen A调用NativeModules.ScreenA.startActivityForResult(),我可以awaitscreen 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
}

我根据react-native文档正确设置了Module,Package和View。但是,当我从native -> react-native返回时,我不知道如何获得正确的反应导航堆栈。

我错过了什么吗?或者这是怎么回事?

0 个答案:

没有答案