Фигурные скобки в функциях со стрелками
Кто-нибудь, пожалуйста, объясните следующее:
Я слежу за лекциями Дана Абрамова и выполняю упражнения.
Код работает нормально, однако тесты не выполняются, когда следующая конкретная функция написана в фигурных скобках **{ }**
,
case 'toggleTodo' :
return (
state.map( (one) => {
oneTodo( one, action )
})
);
Тот же код прекрасно работает без фигурных скобок.
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
Вот JsBin. Пожалуйста, обратитесь к строке 31 и далее.
3 ответа
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
равно:
case 'toggleTodo' :
return (
state.map( (one) => {
return oneTodo( one, action )
})
);
см. заявление о возврате
Пара фигурных скобок образует блок, содержащий список операторов. Вам нужно использовать return
заявление явно, чтобы заставить функцию возвращать что-то.
Если вы опустите фигурные скобки, функция стрелки будет иметь краткое тело, которое состоит исключительно из одного выражения, результат которого неявно станет возвращаемым значением функции.
Использование фигурных скобок является справедливой практикой, когда внутри стрелочной функции содержится несколько операторов. Используйте фигурные скобки, чтобы объединить несколько операторов в один блок и избежать ошибок внутри стрелочной функции.