javascriptecmascript-6bracketscurly-bracesarrow-functions

Curly Brackets in Arrow Functions


can someone, please explain the following:

I'm following Dan Abramov's lectures & doing the exercises.

The code works fine, however, the tests fail when the following particular function is written with curly brackets **{ }**.

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

The same code works fine without curly brackets.

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

Here is the JsBin. Please refer to line 31 onwards.


Solution

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

    is equal to:

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

    see the return statement