箭头函数中的花括号

IT技术 javascript ecmascript-6 brackets curly-braces arrow-functions
2021-01-30 02:56:29

有人可以,请解释以下内容:

我正在听丹·阿布拉莫夫 (Dan Abramov) 的讲座并做练习。

代码工作正常,但是,当以下特定函数大括号编写时,测试失败**{ }**

    case 'toggleTodo' :
        return (
            state.map( (one) => {
                oneTodo( one, action )
            })
        );

相同的代码在没有大括号的情况下也能正常工作

    case 'toggleTodo' :
        return (
            state.map( (one) => 
                oneTodo( one, action )
            )
        );

这是 JsBin请参阅第 31 行以后。

2个回答

这对大括号形成一个,包含一个语句列表。您需要return显式使用语句来使函数返回某些内容。

如果省略大括号,箭头函数有一个简洁的 body,它仅由一个表达式组成,其结果将隐式成为函数的返回值。

感谢@Bergi 的解释,现在理解上面的 madox2 代码。
2021-04-02 02:56:29
您是否也可以包含代码,以使其成为自给自足的答案。
2021-04-04 02:56:29
case 'toggleTodo' :
    return (
        state.map( (one) => 
            oneTodo( one, action )
        )
    );

等于:

case 'toggleTodo' :
    return (
        state.map( (one) => {
            return oneTodo( one, action )
        })
    );

看退货声明