1

我是原生反应新手,这是我第一次实现推送通知。我将导航定义在一个单独的文件夹中,其中有 3 个不同的用户角色导航。下面是我的 App.js 文件,其中包含通知处理程序。

export default function App(props) {
  const [fontLoaded, setFontLoaded] = useState(false);
  useEffect(() => {
    Notifications.addListener((notification) => {
      console.log("notification", notification);
      Vibration.vibrate();
      const {
        data: { message },
        origin,
      } = notification;
     if(origin === "selected"){
       props.navigation.navigate("Agent")
      }
     else if (origin === "received")
        Alert.alert("New Push Notification", message, [{ text: "OK" }]);
    });
  }, []);

  if (!fontLoaded) {
    return (
      <AppLoading
        startAsync={fetchFont}
        onFinish={() => setFontLoaded(true)}
        onError={(err) => {
          console.log(err);
        }}
      />
    );
  }
  return (
    <Provider store={store}>
      <AppNavigation
        ref={(navigator) => {
          setNavigator(navigator);
        }}
      />
    </Provider>
  );
}

我无法导航到不同的屏幕,因为我收到错误 props.navigation.navigate 未定义。如果我错过了提供任何其他详细信息,请提及它,我希望有人能帮助我。

4

0 回答 0