我尽量保持简短。
我想"外包"我的逻辑功能我需要超过3-4个班级。因此我创建了一个.js文件并输入了该函数。
But i did not create a class for it
。相反,我使用以下语法:
var myMainClassWithTheFunction = require('./myMain...');
var FunctionHandler = {
myFunction(){
myMainClassWiththeFunction.testFunction();
}
}
module.exports = FunctionHandler
在这个函数里面我想使用另一个类的方法 - >该类的结构类似于以下
class MyMainClass.. extends Component {
constructor(props){
super(props);
}
static testFunction(
alert("Test");
)
render(){...}
}
module.exports = MyMainClass;
MyMainClass类正在运行(通过许多其他调用检查 - 但是那些来自其他类的调用)
我还使用函数testAlert()测试了来自
myFunction
的{{1}}。
主要问题
至于我尝试从MainClass调用FunctionHandler
我得到以下错误:
undefined不是一个函数(评估' myMainClass.testFunction()'
我的问题 我怎样才能解决这个问题 - 或者你甚至知道外包逻辑行为的更好方法
答案 0 :(得分:0)
您要导出课程MyMainClass
而不是ListViewMain
。我假设您在同一个文件中有多个类:MyMainClass
和MyMainClass
。将MyMainClass
移至单独的文件并导出module.exports = {ListViewMain, MyMainClass};
或将导出更改为:
var {MyMainClass} = require('./myMainClass');
使用它
export class MyMainClass extends Component {...}
或者您可以使用ES6语法:
import {MyMainClass} from './myMainClass';
使用它
exec
答案 1 :(得分:0)
经过几个小时的搜索我的问题在这里我发现:
如果你像我一样填充
js-file
var
。您不能在另一个classes
中要求其他var
并使用其他var
中的var's
(在我的情况下,我的FunctionHandlervar
)
<强>解决方案强>
我需要我的var中的类,所以我可以使用它们。
var FunctionHandler = {
var myMainClassWithTheFunction = require('./myMain...');
myFunction(){
myMainClassWiththeFunction.testFunction();
}
}
module.exports = FunctionHandler
我相信很多人现在都会睁大眼睛,如果他们读到这个并认为“这很明显”,但对我来说这是一个时间密集的问题。希望任何人都可以帮助