Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何导出多个类方法_Javascript_Reactjs_Ecmascript 6_Es6 Class - Fatal编程技术网

Javascript 如何导出多个类方法

Javascript 如何导出多个类方法,javascript,reactjs,ecmascript-6,es6-class,Javascript,Reactjs,Ecmascript 6,Es6 Class,我有几个方法可以返回我希望能够从类外调用的jsx对象,目前,我发现唯一可行的方法是在同一个文件中从类外导出arrow函数,但最终导致类外函数太多 那么,有没有一种方法可以从同一个文件中导出多个类方法并将它们保留在类中 我不想为这些函数中的每一个都创建一个新的类,因为它们是相关的,我需要在类外调用它们,以便能够将它们添加到故事书中 我想要的示例: //A.js class A{ export foo() {return (<div>...</div>)} expo

我有几个方法可以返回我希望能够从类外调用的jsx对象,目前,我发现唯一可行的方法是在同一个文件中从类外导出arrow函数,但最终导致类外函数太多

那么,有没有一种方法可以从同一个文件中导出多个类方法并将它们保留在类中

我不想为这些函数中的每一个都创建一个新的类,因为它们是相关的,我需要在类外调用它们,以便能够将它们添加到故事书中

我想要的示例:

//A.js 
class A{
  export foo() {return (<div>...</div>)}
  export bar() {...}
}

export default A

您不需要导出类方法。只需创建类的实例并调用它们:

// A.js 
class A{
  foo() {return (<div>...</div>)}
  bar() {...}
}

export default A

如果您的方法不依赖于自己的属性或变量(使用
this
访问),您可能希望尝试使用
静态方法

export default class A {
  static foo() {return (<div>...</div>)}
  static bar() {...}
  ...
}
使用静态方法的优点是不需要创建实例就可以使用它。并且,在创建新实例时不会重新创建它

参考:

现场演示:

A类{
静态foo(){
返回“foo()调用”;
}
静态条(){
log(this.foo()+“from bar()”);
}
}
B类{
构造函数(){
A.bar();
}
}

新B()
可能想使用
static
关键字,但我最终得到了一个文件,其中的大多数方法都不在类中,不是吗@你介意描述一下这些函数是做什么的吗?它们返回一个jsx对象,其中一些是纯函数,一些调用其他函数,但它们都没有状态@如果它们不依赖于类变量/属性(使用
this
),我认为使用
static
可能是您真正需要的。例如,在类中,使用
静态foo(){…}
。否则,需要使用公共类方法。我如何从该类中的静态方法调用另一个静态方法
this.foo()
不起作用。根据参考资料,您可以从
bar()内部使用
this.foo()
。使用此方法时是否遇到任何错误?另外,
class A
是否会发生在
扩展React.Component
上?您打算如何使用该类?它不会扩展
React.Component
。我得到一个错误,它找不到那个函数。这个类只是一个视图,它有表格、卡片、列表等等。这很奇怪,我的例子已经成功了。。。但是,您想在另一个扩展了
React.Component
的类中使用
class A
中的JSX并呈现它,这样说对吗?
import A from './A'

// create instance of class A
const a = new A()

// ... and call your methods on instance `a`
a.foo()
a.bar()
export default class A {
  static foo() {return (<div>...</div>)}
  static bar() {...}
  ...
}
import A from './A';

A.foo();