E/ReactNativeJS: undefined не является объектом (оценка 'b.default.sync')

Добавить codePush в мой проект с ошибкой:

E/ReactNativeJS: undefined is not an object (evaluating 'b.default.sync')

когда я использую новый проект реагирования с модульным приложением, установите push-код, как сказано в документе https://github.com/Microsoft/react-native-code-push/blob/master/docs/setup-android.md

Все отлично.

Но когда я добавляю код push в свой существующий проект, модуль с именем "passenger", а не "app", я следую шагу с документом, добавляю код push Manual.

также добавить код в index.android.js

import CodePush from "react-native-code-push";

componentDidMount(){
        console.log("CodePush");
        CodePush.sync();
    }

Когда я запускаю свой модуль, появляется эта ошибка. CodePush не определено. Кто-нибудь знает, что с ним не так?

1 ответ

Решение

Наконец, я решил эту проблему, добавив строку в свой MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mReactRootView = new ReactRootView(this);
    mReactInstanceManager = ReactInstanceManager.builder()
            .setApplication(getApplication())
            .setBundleAssetName("main.bundle")
            .setJSMainModuleName("TingBadgeManager")
            .addPackage(new SQLitePluginPackage())
            .addPackage(new CodePush("xxx", getApplicationContext(), com.xxx.xxx.BuildConfig.DEBUG))       // register CodePush Plugin here
            .addPackage(new MainReactPackage())
            .setUseDeveloperSupport(true)
            .setInitialLifecycleState(LifecycleState.RESUMED)
            .build();
    mReactRootView.startReactApplication(mReactInstanceManager, "TingBadgeManager", null);
    setContentView(mReactRootView);
}

Ключевым моментом является то, что если вы создаете свой RN в Activity, вы должны добавить CodePush с addPackage в mReactInstanceManager. Надеюсь, это поможет.

Проблема связана с: https://github.com/Microsoft/react-native-code-push/issues/871

Другие вопросы по тегам