不能在带有ReactJS ES6的android Cordova应用程序中包含cordova.js文件

时间:2016-08-15 09:39:38

标签: javascript android cordova reactjs ecmascript-6

我一直在使用ReactJS ES6开发android cordova应用程序,直到现在我在我的index.html中注释了cordova.js脚本。

一切都像魅力一样,但当我尝试将我的捆绑js与cordova.js一起包含时,应用程序除了永远显示黑屏外什么都不做。

<body>
  <div id="app"></div>

  <script type="text/javascript" src="cordova.js"></script>
  <script type="text/javascript" src="js/bundle.js"></script>
</body>

我尝试使用和不使用webpack生产标记来打包bundle.js,但它似乎没有效果。

我可以将cordova.js文件排除在外,但据我所知,这个脚本对于触发像'deviceready'这样的事件并使用cordova插件是必要的。

由于我以后想要使用一些插件,我必须对此做些什么。

可能是什么原因? 如何正确地将我的主React组件安装到DOM,确保cordova准备就绪?

我在main.js中尝试过webpack:

import React from 'react';
import ReactDOM from 'react-dom';

import App from './components/App.jsx';


document.addEventListener("deviceready", function() {
  ReactDOM.render(<App />, document.getElementById('app'));
},false);

......以及其他几次尝试。

当我运行adb logcat时,它说:

    I/chromium( 3312): [INFO:CONSOLE(839)] "Uncaught Invariant Violation:     Objects are not valid as a React child (found: object with keys {define, require, version, platformVersion, platformId, addWindowEventHandler, addStickyDocumentEventHandler, addDocumentEventHandler, removeWindowEventHandler, removeDocumentEventHandler, getOriginalHandlers, fireDocumentEvent, fireWindowEvent, callbackId, callbacks, callbackStatus, callbackSuccess, callbackError, callbackFromNative, addConstructor}). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of `App`.", source: file:///android_asset/www/js/bundle.js (839)

我在cordova.js文件中找到了这些addDocumentEventHandler等。 如何使它不与我的bundle.js冲突?

0 个答案:

没有答案