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

如何在不重新绑定的情况下返回带有胖箭头函数的对象?[副本]

莘钧
2023-03-14
getInitialState: function() {
  return {
    text: this.props.text
  }
}

但我想把它胖箭头化:

getInitialState: () => {
    text: this.props.text
}

除了我得到一个错误,因为在胖箭头后面的{意味着返回未定义的代码块(除非您显式地返回某些东西)。至少我一开始是这么想的。但我认为这个现在被绑定到胖箭头函数,现在这个.props未定义的

所以我试着这样做:

getInitialState: () => new Object({
    text: this.props.text
})

所以我想我有两个问题我很好奇。首先,从一个简单的语句胖箭头函数返回对象的惯用方法是什么?其次,如何返回对周围上下文的this对象有引用的对象?

共有1个答案

孙永嘉
2023-03-14

用括号把它围起来,像这样

getInitialState: () => ({
    text: this.props.text
})

如果没有括号,对象文字看起来也像一个JavaScript块,其中有一个名为text的标签。因为它不明确,所以抛出SyntaxError。但是当您用()包围它时,JavaScript知道它是一个对象文本。

我想这是绑定到箭头函数

(function Test1() {
  console.log(this);
  (() => console.log(this))();
}).bind({a: 1})();

将打印

{ a: 1 }
{ a: 1 }
 类似资料:
  • 问题内容: 从箭头函数返回对象时,由于语法上的歧义,似乎有必要使用额外的和关键字集。 那意味着我不会写,但必须写。 如果arrow函数返回的不是对象,则和都是不必要的,例如:。 返回。 修饰符抛出 “::意外标记:‘”。 有什么明显的我想念的吗? 问题答案: 您必须将返回的对象文字包装在括号中。否则,花括号将被视为表示功能的主体。以下作品: 您不需要将任何其他表达式包装到括号中: 等等。

  • 我先试过这个- 很好用。现在我用胖箭做了同样的事情。在这种情况下,“this”是未定义的。

  • 问题内容: 在另一个问题中,我学习了如何通过复制对象来公开将C++对象返回给Python的函数。必须执行复制似乎不是最佳选择。如何不复制就返回对象?即如何直接访问in中返回的峰(在peak_detection_.pyx 中定义)? peak_detection.hpp peak_detection.cpp 峰值 peak_detection_.pyx 问题答案: 如果您拥有现代的C ++编译器并且

  • 问题内容: 鉴于此组件: 如何添加一个无需使用语法即可定义状态的构造函数? 问题答案: 由于它是一个无状态组件,因此没有组件生命周期。因此,您不能指定。 您必须进行扩展以创建有状态组件,然后需要一个构造函数,并且可以使用。 更新 由于阵营16.8.0和挂钩得到了引入有更多的选择。 挂钩是一项新的功能建议,使您无需编写类即可使用状态和其他React>功能。它们作为> v16.8.0的一部分在Reac

  • 我最近切换到es6,开始在我的代码中使用箭头函数。在重构过程中,我遇到了以下代码 我把上面的代码改成了这个- 但是我从上面的代码得到错误。我不知道这里出了什么问题?我知道如果没有代码块,那么箭头函数提供了隐式返回。 但不知道如何返回空对象或匿名对象与一些属性初始化? 编辑: 如果我这样做有什么错?只是出于好奇。

  • 当我尝试在胖箭头函数中返回用户输入条件运算符时出错。温馨的建议。 使用ES5我的代码工作正常; 但是当我使用ES6胖箭头和条件运算符时,出现错误。注意:我想在if… else语句的第一个条件评估时立即返回userInput。 出现以下错误: