【发布时间】:2018-08-25 14:06:45
【问题描述】:
我是原生反应新手,我正在使用一个信号进行通知。我从OneSignal.configure(); 获得了一个信号用户玩家 ID,并按照我已经完成的代码,但我只能在控制台上看到该玩家 ID。我正在使用setState 保存状态,但它显示setState is not a function 的错误。我怎样才能让玩家 id 将其保存在状态中。
代码:
componentWillMount() {
OneSignal.init("d447e6e2-0c8e-4781-8292-6e77d2e86691");
OneSignal.configure();
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
OneSignal.addEventListener('ids', this.onIds);
}
componentWillUnmount() {
OneSignal.removeEventListener('received', this.onReceived);
OneSignal.removeEventListener('opened', this.onOpened);
OneSignal.removeEventListener('ids', this.onIds);
}
onReceived(notification) {
console.log("Notification received: ", notification);
}
onOpened(openResult) {
console.log('Message: ', openResult.notification.payload.body);
console.log('Data: ', openResult.notification.payload.additionalData);
console.log('isActive: ', openResult.notification.isAppInFocus);
console.log('openResult: ', openResult);
}
onIds(device) {
console.log('Device info: ', device);
console.log('player id: ', device.userId);
this.setState({
pid: device.userId,
})
console.log(this.state.pid);
}
【问题讨论】:
-
使用
bind。OneSignal.addEventListener('ids', this.onIds.bind(this)); -
@azium yehh 非常感谢。它的工作。
标签: reactjs react-native push-notification react-native-android onesignal