javascript – 在一个react组件中,如何在静态函数中获得`this`?

前端之家收集整理的这篇文章主要介绍了javascript – 在一个react组件中,如何在静态函数中获得`this`?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试在react组件中创建静态函数.该函数使用它来获取其数据,但在调用函数时,这超出了范围.

这是一个非常简单的例子:

var Test = React.createClass({
  val: 5,statics: {
    getVal: function() { return this.val }
  },render: return( <div>{this.val}</div> )
});

Test.getVal(); => undefined!!

显然,当调用Test.getVal()时,它已经失去了它的范围.如何在getVal()函数获取它?

fyi,以下标准的javascript父方法不起作用:

Test.getVal.apply( Test ); => undefined

解决方法

查看 the docs on statics.

无论你在静态中放置什么都不会有实际的React组件实例的上下文,但是你定义的val属性是实际的React组件实例的属性.在实际渲染组件之前它不会存在,因为那是在构造所有非静态属性时.静态应该是与实际实例的上下文之外可用的组件相关的函数,就像例如C#中的静态函数和许多其他语言一样.

想要从静态函数访问React组件实例似乎没有意义.也许你需要思考一下你实际想要实现的目标.如果你真的想要能够访问特定组件的属性,那么我猜你可以将实例作为参数传递给静态函数,但是当然,一旦你实际构建了一个组件,它就可以使用了.

原文链接:https://www.f2er.com/js/150397.html

猜你在找的JavaScript相关文章