有人可以解释以下内容:
我跟随Dan Abramov的讲座&做练习。
代码工作正常,但是当使用大括号**{ }**
编写以下特定函数时,测试失败。
case 'toggleTodo' :
return (
state.map( (one) => {
oneTodo( one, action )
})
);
相同的代码可以正常运行,不带大括号。
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
Here is the JsBin。请参阅第31行。
答案 0 :(得分:16)
这对括号形成一个块,包含一个语句列表。您需要显式使用return
语句才能使函数返回一些内容。
如果省略大括号,则箭头函数有一个简洁的主体,它只包含一个表达式,其结果将隐式成为函数的返回值。
答案 1 :(得分:13)
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
等于:
case 'toggleTodo' :
return (
state.map( (one) => {
return oneTodo( one, action )
})
);
参见return语句