React-Native 需要来自 'non-class' .js 的 class 并使用函数

React-Native require a class from a 'non-class' .js and use the functions

我想“外包”我需要超过 3-4 个 classes 的逻辑功能。因此我创建了一个 .js 文件并输入了函数。但是我没有为它创建一个class。相反,我使用以下语法:

var myMainClassWithTheFunction = require('./myMain...');

var FunctionHandler = {
    myFunction(){
        myMainClassWiththeFunction.testFunction();            
    }
}

module.exports = FunctionHandler

在这个函数中我想使用另一个 class 的方法 -> class 的结构如下

class MyMainClass.. extends Component {
    constructor(props){
        super(props);
    }
static testFunction(
    alert("Test");
)
render(){...}
}

module.exports = MyMainClass;

class MyMainClass... 正在工作(通过许多其他调用进行检查 - 但那些只是从其他 classes 获得的)

我还使用功能 testAlert() 测试了 FunctionHandler 中的 myFunction,它运行良好。

主要问题
就我尝试从 MainClass 调用 testFunction() 而言,我收到以下错误:

undefined is not a function(evaluating 'myMainClass.testFunction()'

我的问题 我该如何解决这个问题 - 或者您是否知道 外包 逻辑行为的更好方法?

您正在导出 class ListViewMain 而不是 MyMainClass。我假设您在同一个文件中有多个 class:ListViewMainMyMainClass。将 MyMainClass 移动到单独的文件并导出 MyMainClass 或将导出更改为:

module.exports = {ListViewMain, MyMainClass};

使用它

var {MyMainClass} = require('./myMainClass');

或者您可以使用 ES6 语法:

export class MyMainClass extends Component {...}

使用它

import {MyMainClass} from './myMainClass';

经过数小时搜索我的问题所在后,我发现:

If you fill your js-file with just a var like i did. You cannot require other classes in another var and use the var in other var's (in my case my FunctionHandler var)

解决方案

I required the classes inside my var so i could use them.

var FunctionHandler = {
    var myMainClassWithTheFunction = require('./myMain...');

    myFunction(){
        myMainClassWiththeFunction.testFunction();            
    }
}

module.exports = 函数处理程序

我相信现在很多人读到这篇文章时都会翻白眼并思考 'this is clear' 但对我来说这是一个耗时的问题。希望任何人都可以帮助这个