当前位置: 首页 > 知识库问答 >
问题:

在react组件中,如何在静态函数中获得this?

赏成益
2023-03-14
var Test = React.createClass({
  val: 5,
  statics: {
    getVal: function() { return this.val }
  },
  render: return( <div>{this.val}</div> )
});

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

共有1个答案

朱修德
2023-03-14

看看静力学方面的文件。

您在statics中放入的任何内容都不会包含实际React组件实例的上下文,但是您定义的val属性是实际React组件实例的属性。它在实际呈现组件之前不会存在,因为所有非静态属性都是在那时构造的。静态应该是与组件相关的函数,可以在实际实例的上下文之外使用,就像C#和许多其他语言中的静态函数一样。

statics函数访问React组件实例似乎没有意义。也许你需要考虑一下你真正想要实现的目标。如果您真的希望能够访问特定组件的属性,那么我想您可以将实例作为参数传递给静态函数,但当然,一旦您实际构造了组件,这将是可用的。

 类似资料:
  • 问题内容: 我有以下ReactJS类: 但是我有以下错误: 我不明白 这是调用静态函数的好方法吗?我认为react正在使用静态进行某些操作,但我不知道该怎么做。 问题答案: 需要在类而非实例上访问静态方法。因此,在您的情况下,请使用: 但是,静态方法将无法访问-基于上面的代码示例,我不认为您希望该方法是静态的。 更多:ES6中的静态成员

  • 我的Navbar组件有2个子组件。每个组件都有自己的状态。在其组成部分内工作正常的国家。如何更新这两个状态从假到真的同时,当两个功能onclick将被执行? 主组件导航栏 列表菜单组件 汉堡包成分

  • 嗨,我是新来的反应本机和尝试渲染组件调用一个函数内渲染,但它似乎不工作。 我的职能: 如果我这样做,效果会更好: 但不是这个: 我不明白为什么第二个代码不起作用

  • 我需要获取数据库中的所有记录作为数组使用在教义中,我的查询是这样的 即使将水合模式设置为,我也会将结果作为对象 我犯了什么错误?

  • 问题内容: 我正在尝试仅更新数组状态中的一个元素,但不确定如何执行此操作。 State 设定状态 如果我想更改标记的第四个元素中的键,该怎么做? 谢谢 问题答案: 重要的一点是,我们不应该直接更改状态数组,而要始终在新数组中进行更改,然后使用setState更新状态值。 如 Doc 建议: 切勿直接更改this.state,将this.state视为不可变。 更新状态数组的基本流程是: 1- 首先

  • 问题内容: 我正在渲染帖子列表。对于每个帖子,我想呈现一个带有帖子ID的锚标记,作为href字符串的一部分。 我该如何做,以便每个帖子都具有href的,等等? 问题答案: 使用字符串串联: JSX语法允许使用字符串或表达式作为值。您不能将两者混用。顾名思义,您可以在表达式内部使用任何JavaScript表达式来计算值。