2016-09-11 20 views
0

iPhoneでアプリを実行しているときにPushNotificationIOSregisterハンドラが繰り返し呼び出されていることがわかりました。私はreact-native 0.32を使用しており、iPhone 5s上で実行しています。私は、イベントハンドラでPushNotificationIOSレジスタハンドラが繰り返し呼び出される

PushNotificationIOS.addEventListener('register', this.appRegistrationHandlerIos); 

かなり標準ですregisterイベントハンドラを登録していますどのように以下

があり、私は、データベース内のデバイストークンを格納しています。私はそれが毎秒のように繰り返し呼び出されるのを観察しています。他の誰もそれを観察しましたか? registerイベントハンドラのイベントハンドラを削除するコードを追加しましたが、これは問題を修正したようですが、正しい方法です。 registerハンドラは、あなたがcomponentWillMountに登録されている場合は、推奨される方法はcompononentWillUnmountには、removeEventListenerすることで変更

appRegistrationHandlerIos = (deviceToken) => { 
    console.log('Updating the device info') 
    // Store the token in the database 
    PushNotificationIOS.removeEventListener('register', this.appRegistrationHandlerIos); 
} 
+0

あなたは/ときに、セットアップイベントリスナーの詳細情報を提供することができます? –

+0

遅れて申し訳ありません。私は旅行しています。私は、 'list.ios.js'ファイルでレンダリングされる' App'コンポーネントの 'componentWillMount'メソッドでイベントリスナーを設定しています。 –

答えて

0

た後、次のようになります。 https://facebook.github.io/react-native/docs/pushnotificationios.html#removeeventlistener

私の提案は、ケース内のアプリが起動し、ディスパッチアクションは、使用しているときに一度だけそれを設定することです再来/フラックスなど

+0

これは私がやっていたことです。 'componentWillMount'にイベントハンドラを登録し、' componentWillUnmount'メソッドでハンドラを登録解除しましたが、 'register'イベントハンドラが一度だけ呼び出されるのではなく、同じデバイストークンで何度も呼び出されたことがわかりました。私は新しいプロジェクトで再現しようとし、コードを投稿します。 –

関連する問題