如何从react中的组件实例访问静态函数?

Jop*_*eph 6 javascript reactjs

我有一个组件,为它定义了许多静态函数(通过statics组件定义中的属性).我需要在生命周期方法中访问其中一个静态函数componentDidMount.我尝试了以下内容

  • this对象有一个statics属性,但似乎null总是如此
  • this对象也有一个_owner,而后者又有一个statics属性.再一次,这总是如此null

然后我试了一下this.constructor.<static_function>.这对我有用.我只是想知道这是否是访问为组件定义的静态函数的正确方法,还是有其他我不知道的东西.

Ale*_*erg 7

通过访问静态方法和属性this.constructor很好.您也可以通过访问它们ComponentClass.<static>.


Bre*_*ira 5

为什么不在外部作用域中定义函数,只需将它们导出到statics属性中.像这样的东西:

var foo = function() { ... }
var bar = function() { ... }

var MyComponent = React.createClass({
  statics: {
    foo: foo,
    bar: bar
  }
});
Run Code Online (Sandbox Code Playgroud)

现在,可以在组件代码范围内的任何位置访问静态函数.