我有一个为其定义了许多静态函数的组件(通过组件定义中的statics
属性)。我需要在生命周期方法componentDidMount
中访问其中一个静态函数。我尝试了以下
this
对象具有statics
属性,但似乎始终为null
this
对象还有_owner
,后者又有statics
属性。同样,这始终是null
然后我尝试this.constructor.<static_function>
。这对我有用。我只是想知道这是否是访问为组件定义的静态函数的正确方法,或者是否有其他我不知道的东西。
答案 0 :(得分:7)
通过this.constructor
访问静态方法和属性很好。您也可以通过ComponentClass.<static>
访问它们。
答案 1 :(得分:5)
为什么不在外部作用域中定义函数,只需将它们导出到statics
属性中。像这样:
var foo = function() { ... }
var bar = function() { ... }
var MyComponent = React.createClass({
statics: {
foo: foo,
bar: bar
}
});
现在可以在组件代码范围内的任何地方访问静态函数。