我最近切换到es6,开始在我的代码中使用箭头函数。在重构过程中,我遇到了以下代码
data.map(function(d) {
return {id: d.id, selected: bool};
});
我把上面的代码改成了这个-
data.map((d) => {id: d.id, selected: bool});
但是我从上面的代码得到错误。我不知道这里出了什么问题?我知道如果没有代码块,那么箭头函数提供了隐式返回。
但不知道如何返回空对象或匿名对象与一些属性初始化?
编辑:
如果我这样做有什么错?只是出于好奇。
data.map((d) => new {id: d.id, selected: bool});
你也可以用
data.map((d) => {
return {id: d.id, selected: bool}
} );
您好,我想您需要添加paranthesis以返回对象文字
//将正文插入括号以返回对象文字表达式:params=
从…起https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
在对象初始值设定项周围放置参数:
data.map((d) => ({id: d.id, selected: bool}) );
括号对其中表达式的值没有影响,但是它们确实具有消除包含表达式的第一个标记的歧义的语法效果。如果没有括号,JavaScript解析器必须决定{
令牌的意思是“这里开始一个函数体”还是“这里开始一个对象初始化器”它总是选择前者(即代码块)。
因此,引入括号可以消除混淆:前导(
的唯一含义是“表达式来了”,因此括号内的{
只能是“对象初始化器来了”(换句话说,你不能在表达式中间删除代码块;如果你尝试,那么你会得到一个语法错误。)
问题内容: 从箭头函数返回对象时,由于语法上的歧义,似乎有必要使用额外的和关键字集。 那意味着我不会写,但必须写。 如果arrow函数返回的不是对象,则和都是不必要的,例如:。 返回。 修饰符抛出 “::意外标记:‘”。 有什么明显的我想念的吗? 问题答案: 您必须将返回的对象文字包装在括号中。否则,花括号将被视为表示功能的主体。以下作品: 您不需要将任何其他表达式包装到括号中: 等等。
它必须是基本的,但请帮助我理解为什么这不起作用。 当我编写一个普通的arrow函数并返回jsx时,它就工作了。但是,当我使用async/await请求和相同的arrow函数返回jsx时,它失败了。 编辑: 实际上,我必须在列表视图中显示用户的配置文件图像。所以,我调用这个函数来检索我的块中相应用户的图像 这很有效 但事实并非如此
这里,当我返回一个箭头函数insted时,它不起作用: 我知道箭头函数是松散的,这就是为什么我在这里尝试在括号中返回它。没有他们也不行。
但我想把它胖箭头化: 除了我得到一个错误,因为在胖箭头后面的意味着返回未定义的代码块(除非您显式地某些东西)。至少我一开始是这么想的。但我认为现在被绑定到胖箭头函数,现在是。 所以我试着这样做: 所以我想我有两个问题我很好奇。首先,从一个简单的语句胖箭头函数返回对象的惯用方法是什么?其次,如何返回对周围上下文的对象有引用的对象?
我正在阅读ScrollListView的源代码,在一些地方我看到了的用法。 88号线。 这是的缩写吗?如果有什么不同,又是怎么回事?
我使用React和Redux,并将动作类型指定为接口,这样我的还原程序就可以利用标记的联合类型来提高类型安全性。 我有如下类型声明: 我想创建创建这些动作的助手函数,我倾向于使用箭头函数。如果我这样写: 编译器无法提供任何帮助来确保这是一个有效的,因为没有明确指定返回类型。我可以通过执行以下操作显式指定返回类型: 但这需要指定我的函数参数两次,因此冗长且难以阅读。 在使用箭头符号时,有没有一种方法