我对以下代码示例有疑问:
Notifications.setNotificationHandler({//makes sure notification is displayed even when app is open, nothing else
handleNotification: async (notification) => {
//const value = await AsyncStorage.getItem('presetlanguage');
//console.log("ASYNC STORAGE LANGUAGE FROM OUTSIDEEEE: ", value)
//if(notification.request.content.body == "You received a new letter from a PigeonBuddy!"){
// console.log("hat geklappt")
//}
return{
shouldShowAlert: true
};
}
});
const MainScreen = props => {
const dispatch = useDispatch();
var chosenLanguage = useSelector(state => state.myLanguage.myLanguage); ...........
setNotificationHandler
负责处理传入的通知,因此我想过滤传入的通知。例如,根据我在哪个屏幕上,我想显示通知或不显示通知。然而问题是,我既不能访问我的导航状态,也不能访问我的 redux 状态,因为通知的这种处理发生在默认屏幕主函数之外,该函数涵盖所有变量并且还通过导航使用道具。禁止在那里调用 redux 钩子,而且我无法访问我的导航状态,因为我无法访问通过导航获得的 props 变量。
如何根据我所在的屏幕显示我的通知?像 Facebook 这样的公司是如何做到的?如果您在聊天屏幕上,则不会收到通知,但如果您不在通知范围内,则会显示“收到来自...的新消息”。