E / ReactNativeJS:undefined不是对象(评估' default.sync')

时间:2017-02-14 03:14:05

标签: android react-native-code-push

使用Error:

将codePush添加到我的项目中
E/ReactNativeJS: undefined is not an object (evaluating 'b.default.sync')

当我使用模块应用程序的新反应项目时,安装代码推送,因为文档说https://github.com/Microsoft/react-native-code-push/blob/master/docs/setup-android.md

一切都很好。

但是当我将代码push添加到我现有的项目中时,模块名为&#34; passenger&#34;,而不是&#34; app&#34;,我按照文档的步骤,添加代码推送手册。< / p>

还要将代码添加到index.android.js

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

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

当我运行我的模块时,会出现此错误。 CodePush未定义。 有人知道它有什么问题吗?

1 个答案:

答案 0 :(得分: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,则应在mReactInstanceManager中添加带addPackage的CodePush。 希望这可以提供帮助。

相关问题:https://github.com/Microsoft/react-native-code-push/issues/871