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

'this'的含义在组件didMount(), ReactJS

凤明朗
2023-03-14

寻求澄清“此”在本上下文中的含义。为什么我需要在ajax请求之后将“this”绑定到回调?当我检查调试器时,不管我是否调用bind,它都会说'this'绑定到构造函数。

var BugList = React.createClass({
getInitialState: function() {
    return {
        bugs: []
    }
},

componentDidMount: function() {

    $.ajax('/api/bugs').done(function(data) {
        this.setState({
            bugs: JSON.parse(data)
        });
    }.bind(this));
},

共有1个答案

袁博
2023-03-14

这是因为默认情况下thisthis将指向:

当前执行上下文的ThisBinding的值;

由于您的上下文将在回调实际运行期间更改,不会引用您当前的错误列表

.bind(this)本质上声明,无论上下文如何,都将this设置为该函数创建位置的上下文(即错误列表

我建议你看看:标准ECMA-262和JS中的范围。关于这个概念的更详细的解释!

 类似资料:
  • 我试图更好地理解React组件的生命周期。我正在尝试将与React组件的生命周期相关的消息打印到控制台。在下面显示的组件中,我使用的是console。记录3次。但是,其中两个在控制台中打印两次。我用的是铬。这就是打印到控制台的内容。 为什么三个控制台中有两个是双重打印的。记录除componentDidMount之外的消息?谁来操纵控制台。componentDidMount的日志只打印一次。下面是组

  • 问题内容: 假设我们有一个类名Home。是什么区别 Home.this 和 Home.class ?他们指的是什么? 问题答案: 这个 引用该类的当前实例。 此表达式的正式术语似乎是qualified this,如Java语言规范的15.8.4节所引用。 在一个简单的类中,说和将等效。此表达式仅在存在内部类且需要引用封闭类的情况下使用。 例如: 家庭类 将类的表示形式作为对象返回。 此表达式的正式

  • 问题内容: Java中“ this”的含义是什么? 问题答案: this 指当前对象 每个非静态方法都在对象的上下文中运行。因此,如果你有这样的课程: 然后调用上会打印 因此,有效地将它用于多种用途: 澄清你在谈论一个字段,当还有其他与该字段同名的东西时 整体引用当前对象 在构造函数中调用当前类的其他构造函数

  • 问题内容: 我想在切换时更新状态,但在处理程序中未定义对象。根据教程文档,我应该引用该组件。我想念什么吗? 问题答案: ES6 React.Component不会自动将方法绑定到自身。您需要将它们自己绑定到构造函数中。像这样:

  • 问题内容: 我有一个JavaScript文件,由加载。 我的问题是:在var中是一个空对象,而函数中的语句是node.js全局对象的影子。我知道关键字在功能上有所不同,但我不明白为什么先不等于全局,而在功能上等于全局。 node.js如何注入到函数范围内,为什么不将其注入模块范围内? 问题答案: 您必须了解以下一些基本事实才能弄清情况: 在Node模块的顶级代码中,等效于。那是您看到的空对象。 当

  • 我试图访问this.myref.current,但我不能做到这一点时,组件didMount被调用。有没有另一个函数我可以调用,当所有引用都链接时,它会起作用? 请注意,问题不仅仅是我不能访问.当前,更具体地说,我不能在组件安装期间访问它。我可以稍后在其他活动中访问它。