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()'
- 我尝试了一个static/non-static函数
我的问题
我该如何解决这个问题 - 或者您是否知道 外包 逻辑行为的更好方法?
您正在导出 class ListViewMain
而不是 MyMainClass
。我假设您在同一个文件中有多个 class:ListViewMain
和 MyMainClass
。将 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' 但对我来说这是一个耗时的问题。希望任何人都可以帮助这个
我想“外包”我需要超过 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()'
- 我尝试了一个static/non-static函数
我的问题 我该如何解决这个问题 - 或者您是否知道 外包 逻辑行为的更好方法?
您正在导出 class ListViewMain
而不是 MyMainClass
。我假设您在同一个文件中有多个 class:ListViewMain
和 MyMainClass
。将 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 avar
like i did. You cannot require otherclasses
in anothervar
and use thevar
in othervar's
(in my case my FunctionHandlervar
)
解决方案
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' 但对我来说这是一个耗时的问题。希望任何人都可以帮助这个