I tried to export wechat sdk as a native module.
I copied some codes here:

public class WeChatModule extends ReactContextBaseJavaModule implements IWXAPIEventHandler {
    private String appId;

    public WeChatModule(ReactApplicationContext context) {

    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.


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.


The correct JS codes:
const { WeChat } = NativeModules;

react-native : Native Modules, name prefix "RCT"works for android too