我正在使用带有 swift的 create-react-native-module创建本机模块。之后,我遵循了 iOS 设置的 react native 官方文档。文档链接:: https://facebook.github.io/react-native/docs/native-modules-ios
我用示例创建了 create-react-native-module。我只是在我的本机模块中添加带有返回字符串“Hello World”的简单函数。
我的'CustomModule-Bridging-Header.h'::
#import <React/RCTBridgeModule.h>
我的'CustomModule.m'::
#import <React/RCTBridgeModule.h>
@interface RCT_EXTERN_MODULE(CustomModule, NSObject)
RCT_EXTERN_METHOD(sampleMethod)
+ (BOOL) requiresMainQueueSetup {
return YES;
}
@end
我的“CustomModule.swift”:
import Foundation
@objc(CustomModule)
class CustomModule: NSObject {
@objc(sampleMethod)
func sampleMethod() -> String {
return "Hello World"
}
}
在对本机模块进行这些更改后,我在示例中再次安装了依赖项。现在我的 App.js 看起来像::
import React, { Component } from 'react';
import { Platform, Text, View } from 'react-native';
import CustomModule from 'react-native-custom-module';
export default class App extends Component {
state = {
message: '--'
};
async componentDidMount() {
const msg = await CustomModule.sampleMethod();
console.log('javascript calling msg::', msg);
this.setState({
message: msg
});
}
render() {
return (
<View>
<Text>CustomModule example☆</Text>
<Text>{this.state.message}</Text>
</View>
);
}
}
在这里,我将“msg”值设为未定义。请帮忙!