Trying to perform setState after the value return from checkPermissions()
, however async-await didn't do the job.
I can't spot anything incorrect here, can you point out my mistake?
FYI checkPermissions()
accept a callback function as parameter.
async componentDidMount() {
let authorizationStatus = false;
await PushNotification.checkPermissions(function(permissions) {
console.log(permissions);
authorizationStatus = permissions.alert
console.log('Run first')
});
console.log('Run after')
this.setState({
authorizationStatus,
});
}
Check Permissions Code (Android)
@ReactMethod
public void checkPermissions(Promise promise) {
ReactContext reactContext = getReactApplicationContext();
NotificationManagerCompat managerCompat = NotificationManagerCompat.from(reactContext);
promise.resolve(managerCompat.areNotificationsEnabled());
}
Solution tried but failed:
Only Run first
is printed out, Run after
does not.
async componentDidMount() {
let authorizationStatus = false;
PushNotification.checkPermissions(function(permissions) {
console.log(permissions);
authorizationStatus = permissions.alert
console.log('Run first')
this.setState({
authorizationStatus,
},()=>{console.log('Run after')});
});
}