1

我有一些网络应用程序模块(我将其视为对象类),我想在 react-native 中重用它们。

但是定义不起作用。我尝试了amdefine但没有成功。我得到的错误是"define is undefined"。有任何想法吗?

一个例子:

来电者(index.ios.js):

var React = require('react-native');
var ExampleClass = require('./app/ExampleClass');
....

定义:

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;
});
4

1 回答 1

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.exportsES6 语法之类的代码)。

    它也会表现得像一个大包裹。

  • 只有视图特定于目标平台(iOS、Web 浏览器):

    每个视图类都只是require必要的子类。

欢迎评论。:)

于 2015-08-10T09:16:39.957 回答