そーす

福岡在住。ネイテイブアプリ(Swift, Kotlin), ReactNative, ReactSPAが仕事メイン

BackAndroidはremoveEventListenerではなくaddEventListenerの返り値のオブジェクトを使おう

facebook.github.io

Andoroidの戻るボタンが押された時のイベントをハンドリングするAPIです。 なんか公式ドキュメント見るとaddEventListerでセットしたハンドラの破棄はremoveEventListerを使わないといけないっぽいですが、 ソースを見てみる

addEventListener: function (
    eventName: BackPressEventName,
    handler: Function
  ): {remove: () => void} {
    _backPressSubscriptions.add(handler);
    return {
      remove: () => BackAndroid.removeEventListener(eventName, handler),
    };
  },

removeメソッドを持つオブジェクトを返してますね。

ちなみに現在のmasterではBackAndroidはDeprecatedになってます。

github.com

BackHandlerというAPIに変わるそうです。

github.com