Javascript 反应本机:打开推送通知会打开应用程序,但不会导航到相关内容
当前,在应用程序运行时打开推送通知时,它将导航到正确的内容场景。但是,当应用程序关闭,用户打开推送通知时,它将只打开应用程序,而不会导航到相关内容场景。我认为问题在于onNotification函数与checkLogin函数几乎同时启动。我想以某种方式等到checkLogin完成,然后继续运行onNotification。我感谢任何人的帮助Javascript 反应本机:打开推送通知会打开应用程序,但不会导航到相关内容,javascript,reactjs,react-native,Javascript,Reactjs,React Native,当前,在应用程序运行时打开推送通知时,它将导航到正确的内容场景。但是,当应用程序关闭,用户打开推送通知时,它将只打开应用程序,而不会导航到相关内容场景。我认为问题在于onNotification函数与checkLogin函数几乎同时启动。我想以某种方式等到checkLogin完成,然后继续运行onNotification。我感谢任何人的帮助 // When receiving an incoming notification (iOS/Android) onNotification: async
// When receiving an incoming notification (iOS/Android)
onNotification: async function (notification) {
//for iOS the data is nested, for Android the data is attached directly to the object
let data = (Platform.OS === 'ios') ? notification.data : notification;
let id = data._id;
let channelId = data.channel;
let message = data.message;
Logger.info('Notification Received', message);
if (isLoggedIn()) {
// Check if the logged in user is the one who received the message
let content = ModelCache.getContent(id);
Navigation.goContent(content);
}
},
应用程序启动时,此代码块位于索引文件中
componentWillMount() {
this.checkLogin();
}
async checkLogin() {
let user = await Data.getStoredUser();
this.setState({
isUserChecked: true,
initialRoute: user ? Navigation.MAIN_SCENE : Navigation.LANDING_SCENE
});
}
由于它是javascript,不太可能一件事与另一件事同时发生,因此这可能意味着在调用
checkLogin
函数之前调用onNotification
。也许一种解决方法是从onNotification
中设置状态值,该值可由checkLogin
引用和操作。您能给我举一个如何从onNotification设置状态值的示例吗?您没有提到使用redux,所以如果您只是使用组件状态,我只需在顶级组件本身中定义onNotification,例如在componentDidMount中,然后从中访问this.setState
。