私はReact Nativeを使って、NSDictionaryの関数を受け入れることができるネイティブモジュールを作成しようとしています。たとえば、複数の潜在的なコールバックを持つ関数を呼び出すとします。 0コールバック、15、またはその間の任意の数を持つことができるとします。私は、私が使用するコールバック関数を含むように、私は辞書を使用します。ReactネイティブNativeModulesは1つのオブジェクト内で複数の関数を渡す
MyModule.showInterstitial({
onLoad:()=>{console.log("Loaded")},
failedToLoad:()=>{console.log("Failed to load")},
onDismiss:()=>{console.log("Did dismiss")},
})
これは、このようなコードを見て持っているAPIを使用して誰かではなくて、次のようなものから来る多くの意味があります15種類のコールバックのみ3が使用されている:
MyModule.showInterstitial(null,
null,
null,
null,
()=>{console.log("Loaded")},
null,
null,
()=>{console.log("Failed to load")},
null,
null,
null,
null,
null,
null,
()=>{console.log("Did dismiss")},
null
})
私はObjective Cのコードを見ると、私はこのような方法で作成しようとすることができます。
RCT_EXPORT_METHOD(showInterstitial: (NSDictionary *)callbacks) {
// implementation
}
しかし、これで問題が発生しObjCメソッドは、NSDictionaryがNSDictionariesのNSDictionaryを作成することです(言い換えれば、RCTConvertには、javascript関数をRCTResponseSenderBlockに変換するメソッドがありません)。私はキャストしようとしましたが、うまくいきません。私はそれを呼び出すだけで、私のアプリケーションがクラッシュします。
だから私は誰もこれを前に扱っているのか、それをどう対処するのか知っているのだろうか?