首页 > 解决方案 > react-native 如何从路由目录在特定屏幕上导航?

问题描述

我正在使用 react-navigation 库中的 react switch navigator。我创建一个单独的文件 router.js 并调用我的 App.js。现在我正在使用 react-native-firebase 并且我需要从 app.js 导航到特定屏幕。如果有人有想法,请告诉我这是我的代码:

应用程序.js:

import Router from "./src/Router";
class App extends Component<Props> {
render() {
    return (
      <Router />
    );
  }
}

export default App;

路由器.js

const AppSwitchNavigator = createSwitchNavigator({
    InitialScreen: {
        screen: InitialScreen
    },
    Login: {
        screen: Login
    },
    Forgot: {
        screen: Forgot
    },
    SuccessMessage: {
        screen: SuccessMessage
    },
    App: AppStackDelivery,
    AppR: AppStackRecipient,
}, {
  initialRouteName: 'InitialScreen'
});

const Router = createAppContainer(AppSwitchNavigator);

export default Router;

从推送通知中,我收到了 id,我需要导航到详细信息屏幕,但我的路由器或初始屏幕没有任何信息,请任何有想法的人分享。

标签: react-nativeroutesreact-navigation

解决方案


您应该使用深层链接。并去你想要的路径onNotification

例子

handleNotification () {
    const  path  = "chat/Eric";
    const prefix = Platform.OS === 'android' 
                     ? 'myapp://myapp/'
                     : 'myapp://'
    const url = `${prefix}${path}`;

        Linking.openURL(url).catch(err => console.error(err));
        firebase.messaging().setBadgeNumber(0);
  }

推荐阅读