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

时间:2015-03-19 14:17:19

标签: javascript reactjs

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

  • this对象具有statics属性,但似乎始终为null
  • this对象还有_owner,后者又有statics属性。同样,这始终是null

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

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:5)

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

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

var MyComponent = React.createClass({
  statics: {
    foo: foo,
    bar: bar
  }
});

现在可以在组件代码范围内的任何地方访问静态函数。