0

在 App.js 中收到通知时,我试图重定向到另一个屏幕。我正在使用 useNavigation() 但它不起作用。

有没有办法重定向到另一个屏幕或以另一种方式使用通知?

export default function App() {
  function UserScreen() {  
    const navigation = useRef(useNavigation());  
    navigation.navigate('Chat');
  }


  useEffect(() => {
    const backgroundSubscription = Notifications.addNotificationResponseReceivedListener(
      (response) => {
        switch (response.request?.content.data.type) {
          case 'chat':
            return UserScreen()
          default:
            return console.log('Entro al default')
        }
      }
    );

    const foregroundSubscription = Notifications.addNotificationReceivedListener(
      (notification) => {
        switch (notification.request?.content.data.type) {
          case 'chat':
            return UserScreen()
          default:
            return console.log('Entro al default')
        }
      }
    );

    return () => {
      backgroundSubscription.remove();
      foregroundSubscription.remove();
    };
  }, []);

  return (
    <Provider store={store}>
      <SparkitNavigator />
    </Provider>

  );
}
4

1 回答 1

0

怎么样:

export default function App() {
  const navigation = useNavigation(); 
  
  function UserScreen() {  
   navigation.navigate('Chat');
  }
  // rest code
}

确保 App 和 Chat 已在 Navigator Stack 中注册

于 2021-09-14T09:00:32.297 回答