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