TypeError 对象不是构造函数(正在计算 new_pubnubReact.default')
TypeError Object is not a constructor (evaluating new_pubnubReact.default')
我是 React Native 的新手,正在尝试为 android 创建推送通知。
我正在使用 PubNub 中的以下教程。
完成教程后,当我 运行 我的应用程序在 android studio 模拟器中时,出现以下错误。
不太确定当我google问题没有出现时如何修复它意味着什么。
这是我的代码
import React from 'react';
import PushNotificationIOS from 'react-native';
import PubNubReact from 'pubnub-react';
const PushNotification = require('react-native-push-notification');
export default class App extends React.Component {
constructor(props) {
super(props);
this.pubnub = new PubNubReact({
publishKey: 'YOUR_PUBNUB_PUBLISH_KEY_HERE',
subscribeKey: 'YOUR_PUBNUB_SUBSCRIBE_KEY_HERE'
});
this.pubnub.init(this);
PushNotification.configure({
// Called when Token is generated.
onRegister: function(token) {
console.log( 'TOKEN:', token );
if (token.os == "ios") {
this.pubnub.push.addChannels(
{
channels: ['notifications'],
device: token.token,
pushGateway: 'apns'
});
// Send iOS Notification from debug console: {"pn_apns":{"aps":{"alert":"Hello World."}}}
} else if (token.os == "android"){
this.pubnub.push.addChannels(
{
channels: ['notifications'],
device: token.token,
pushGateway: 'gcm' // apns, gcm, mpns
});
// Send Android Notification from debug console: {"pn_gcm":{"data":{"message":"Hello World."}}}
}
}.bind(this),
// Something not working?
// See: https://support.pubnub.com/support/solutions/articles/14000043605-how-can-i-troubleshoot-my-push-notification-issues-
// Called when a remote or local notification is opened or received.
onNotification: function(notification) {
console.log( 'NOTIFICATION:', notification );
// Do something with the notification.
// Required on iOS only (see fetchCompletionHandler docs: https://reactnative.dev/docs/pushnotificationios)
// notification.finish(PushNotificationIOS.FetchResult.NoData);
},
// ANDROID: GCM or FCM Sender ID
senderID: "sender-id",
});
}
}
pubnub-react
库已在版本 2.0.0
中完全更改。它不再默认包含 pubnub
JavaScript SDK,因此您也必须安装它。
Here is the link 到新的 PubNub React 存储库,在 README.md
文件中您可以找到有关如何使用它的示例。
如果您想使用与您可能正在阅读的 tutorial/blog post 兼容的旧版本,请像这样安装旧版本的 PubNub React SDK:
$ npm install pubnub-react@1
总结变化,pubnub-react
现在使用 Context 和 Hooks API 将 PubNub 实例传播到子树的深处。
提供商
您需要在组件树顶部的某个位置包含提供程序。
import React from 'react'
import PubNub from 'pubnub'
import { PubNubProvider } from 'pubnub-react'
const pubnub = new PubNub({}) // PubNub configuration
export const App = () => {
return <PubNubProvider client={pubnub}>
<Child />
</PubNubProvider>
}
消费者
要在其他地方使用 PubNub 实例,您现在只需使用 usePubNub
挂钩即可。
import { usePubNub } from 'pubnub-react'
export const Child = () => {
const pubnub = usePubNub()
return <div>I am using PubNub!</div>
}
我是 React Native 的新手,正在尝试为 android 创建推送通知。
我正在使用 PubNub 中的以下教程。
完成教程后,当我 运行 我的应用程序在 android studio 模拟器中时,出现以下错误。
不太确定当我google问题没有出现时如何修复它意味着什么。
这是我的代码
import React from 'react';
import PushNotificationIOS from 'react-native';
import PubNubReact from 'pubnub-react';
const PushNotification = require('react-native-push-notification');
export default class App extends React.Component {
constructor(props) {
super(props);
this.pubnub = new PubNubReact({
publishKey: 'YOUR_PUBNUB_PUBLISH_KEY_HERE',
subscribeKey: 'YOUR_PUBNUB_SUBSCRIBE_KEY_HERE'
});
this.pubnub.init(this);
PushNotification.configure({
// Called when Token is generated.
onRegister: function(token) {
console.log( 'TOKEN:', token );
if (token.os == "ios") {
this.pubnub.push.addChannels(
{
channels: ['notifications'],
device: token.token,
pushGateway: 'apns'
});
// Send iOS Notification from debug console: {"pn_apns":{"aps":{"alert":"Hello World."}}}
} else if (token.os == "android"){
this.pubnub.push.addChannels(
{
channels: ['notifications'],
device: token.token,
pushGateway: 'gcm' // apns, gcm, mpns
});
// Send Android Notification from debug console: {"pn_gcm":{"data":{"message":"Hello World."}}}
}
}.bind(this),
// Something not working?
// See: https://support.pubnub.com/support/solutions/articles/14000043605-how-can-i-troubleshoot-my-push-notification-issues-
// Called when a remote or local notification is opened or received.
onNotification: function(notification) {
console.log( 'NOTIFICATION:', notification );
// Do something with the notification.
// Required on iOS only (see fetchCompletionHandler docs: https://reactnative.dev/docs/pushnotificationios)
// notification.finish(PushNotificationIOS.FetchResult.NoData);
},
// ANDROID: GCM or FCM Sender ID
senderID: "sender-id",
});
}
}
pubnub-react
库已在版本 2.0.0
中完全更改。它不再默认包含 pubnub
JavaScript SDK,因此您也必须安装它。
Here is the link 到新的 PubNub React 存储库,在 README.md
文件中您可以找到有关如何使用它的示例。
如果您想使用与您可能正在阅读的 tutorial/blog post 兼容的旧版本,请像这样安装旧版本的 PubNub React SDK:
$ npm install pubnub-react@1
总结变化,pubnub-react
现在使用 Context 和 Hooks API 将 PubNub 实例传播到子树的深处。
提供商
您需要在组件树顶部的某个位置包含提供程序。
import React from 'react'
import PubNub from 'pubnub'
import { PubNubProvider } from 'pubnub-react'
const pubnub = new PubNub({}) // PubNub configuration
export const App = () => {
return <PubNubProvider client={pubnub}>
<Child />
</PubNubProvider>
}
消费者
要在其他地方使用 PubNub 实例,您现在只需使用 usePubNub
挂钩即可。
import { usePubNub } from 'pubnub-react'
export const Child = () => {
const pubnub = usePubNub()
return <div>I am using PubNub!</div>
}