反应导航错误:未由任何导航器处理

时间:2020-09-17 03:20:51

标签: react-native react-navigation react-native-ios

我知道为什么会发生这种情况,但我正在尝试找出实现所需行为的最佳方法:

假设我有一个选项卡导航器,并且在这些选项卡中有堆栈导航器。首次打开该应用程序时,我在“主页”选项卡中。现在,假设有一个推送通知,我将处理该通知,然后说到配置文件堆栈导航器中的此屏幕。该屏幕通常不是导航器中的第一个屏幕,但是由于我还没有通过选项卡导航器导航到配置文件屏幕,因此未加载初始屏幕,因此它是堆栈中的第一个屏幕。如果我呼叫navigation.pop,则导航器将不会处理它,因为在个人资料导航器中没有可返回的屏幕。

我认为我可以调用navigation.navigate('Profile'),它确实会导航到该屏幕,但不会弹出初始屏幕,因此默认情况下单击选项卡将使第一个屏幕成为基本屏幕,直到重新启动该应用程序为止

如果我打电话给navigation.goBack(),我不会遇到上述问题,但是我将无法始终确保“个人资料”屏幕是返回原位的地方。

理想情况下,我想用某种方式说将这个屏幕推入堆栈,然后再推这个屏幕。因此,当调用pop时,它将始终显示该用户的个人资料屏幕。

**编辑**

浏览一些文档后,我发现我可以执行以下操作:

    navData.dispatch(() => {
      navData.navigate('Home', {
        screen: 'ProfileScreen',
      });
      navData.navigate('Home', {
        screen: 'ProfileScreen',
        params: {
          screen: 'ViewPostScreen',
          params: { shouldPlay: true },
        },
      });
    });

尽管我收到以下警告:Possible unhandled Promise rejection: TypeError: undefined is not an object 'action.target'

我还在应用程序的其他位置(具有不同的屏幕)使用此逻辑,并且可以在开发中使用,而不能在生产中使用。寻找有关最佳解决上述情况的建议。

0 个答案:

没有答案