I tried to export wechat sdk as a native module.
I copied some codes here:
ReactContextBaseJavaModule requires that a method called getName is implemented. The purpose of this method is to return the string name of the NativeModule which represents this class in JavaScript.
Then I encountered error in my react-native JS codes.
React Native uses RCT as a prefix. In order to avoid name collisions, we recommend using a three-letter prefix other than RCT in your own classes.
I copied some codes here:
public class WeChatModule extends ReactContextBaseJavaModule implements IWXAPIEventHandler {
private String appId;
public WeChatModule(ReactApplicationContext context) {
super(context);
}
@Override public String getName() {
return "RCTWeChat";
}
}
I used "RCTWeChat" as the module name, I did not know the "RCT" prefix meanings.ReactContextBaseJavaModule requires that a method called getName is implemented. The purpose of this method is to return the string name of the NativeModule which represents this class in JavaScript.
Then I encountered error in my react-native JS codes.
import {NativeModules} from 'react-native'; const { RCTWeChat } = NativeModules;
WeChat or NativeModules.RCTWeChat always undefined.
Cause
RCT is a prefix used in react native, it will be removed when exported to JS.React Native uses RCT as a prefix. In order to avoid name collisions, we recommend using a three-letter prefix other than RCT in your own classes.
Solution
The correct JS codes:const { WeChat } = NativeModules;
No comments:
Post a Comment