Estoy tratando de exportar un módulo rápidode acuerdo con la documentación de react-native, pero me encuentro con el siguiente error cuando intento llamar a esta función en mi archivo javascript . Creo que el problema tiene que ver con llamar a un método async en mi código Swift. Por lo tanto, no estoy seguro de cómo exportar y llamar a un método async desde mi archivo Swift al crear un módulo nativo en react-native.
Aquí está el archivo AppleMusicAuth.swift que contiene el método async que intento exportar
// // AppleMusicAuth.swift // // // import Foundation import MusicKit @available(iOS 15.0, *) @objc(AppleMusicAuth) class AppleMusicAuth: NSObject { @objc func getAuthStatus() async -> Void { let response = await MusicAuthorization.request() print(response) } } Junto con mi archivo AppleMusicAuth.m que utiliza el método RCT_EXTERN_METHOD para exportar el módulo a mi aplicación JS
// // AppleMusicAuth.m // // // #import <Foundation/Foundation.h> #import <React/RCTBridgeModule.h> @interface RCT_EXTERN_MODULE(AppleMusicAuth, NSObject) RCT_EXTERN_METHOD(getAuthStatus) @endY los archivos Javascript que importan y llaman al módulo y al método para su uso
import { NativeModules } from 'react-native'; const { AppleMusicAuth } = NativeModules; export default AppleMusicAuth; import React from 'react'; import {Button} from 'react-native'; import AppleMusicAuth from '../nativeModules/AppleMusicAuth'; type Props = {}; const App: React.FC<Props> = () => { return ( <Button onPress={() => { AppleMusicAuth.getAuthStatus(); }} title="Button" color="#841584" /> ); }; export default App;