【发布时间】:2021-09-14 01:06:16
【问题描述】:
当在 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>
);
}
【问题讨论】:
-
试试
const navigation = useNavigation();让我知道 -
移动
const navigation到 App() 的顶部,钩子不应该在嵌套函数中使用
标签: reactjs react-native react-hooks react-navigation expo-notifications