我有一些Web应用程序模块(我将其视为对象类),我想在react-native中重用它们。
然而 define 不起作用。我尝试了 amdefine 但无处可去。 我得到的错误是“define is undefined”。有什么想法吗?
一个例子:
THE CALLER(index.ios.js):
var React = require('react-native');
var ExampleClass = require('./app/ExampleClass');
....
THE DEFINITION:
define('ExampleClass', [
// imports
'ParentClass',
'ExampleImport',
'ExampleImport2',
], function(ParentClass, ExampleImport, ExampleImport2) {
/**
* @class ExampleClass
*/
var ExampleClass = ParentClass.extend('ExampleClass');
ExampleClass.prototype.init = function() {
ParentClass.prototype.init.call(this);
var oExampleImport = new ExampleImport();
oExampleImport.doStuff();
};
ExampleClass.prototype.doSomething = function(oData, oStatus) {
.....
var oExampleImport2 = new ExampleImport2();
oExampleImport2.doMoreStuff();
};
return ExampleClass;
});
答案 0 :(得分:0)
经过一番调查后,我想出了一个解决方案(我仍然需要这样做:p):
将共享模块隔离为通用节点模块
'use scrict';
let Module2 = require('../app/modules/Module2');
let Module = {};
Module.prototype.init = function() {
let m2 = new Module2();
m2.doSomething();
};
module.exports = Module;
我当然可以使用class
结构等来制作更多ES6
使用 browserify 或 webpack 等内容打包项目:
这将允许Web应用程序能够使用共享模块(例如,因此它将此类代码理解为module.exports
和ES6语法)。
它也会像一个大包装。
只有视图特定于目标平台(iOS,网络浏览器):
每个视图类只需要require
必要的子类。
欢迎评论。 :)