2016-03-18 1 views
42

Я использую "eslint-config-airbnb": "^6.1.0",, чтобы мой JavaScript был чистым.Неожиданный оператор блока, окружающий тело стрелки

Мой ЛИНТЕР недоволен, что кажется законным код:

enter image description here

Похоже, что это может быть ongoing issue. Есть ли у кого-нибудь какие-либо предложения для разработчика OCD о том, как обращаться с этим в то же время? Возможно, отключить это правило или иначе?

+2

почему вам нужно '{возвращение ...}' для одного оператора? Вы можете использовать 'this.state.todos.filter (filterTodo => filterTodo! == todo' – sarbbottam

+1

Страница проблемы, с которой вы связались, хорошо объясняет ситуацию, где это путаница? Кажется странным, что она отмечает это как ошибку а не предупреждение, хотя это, вероятно, можно настроить. –

ответ

65

Оператор блока не требуется для одного выражения.

this.state.todos.filter(filterTodo => filterTodo !== todo); 
1

Чтобы добавить ответ Кевина, ошибка связана с вашей конфигурацией eslint. При этом, если для параметра arrow-body-style установлено значение true, OP правильный. Другим примером может быть что-то вроде этого:

return this.state.greetings.map((name) => { 
     return <HelloWorld key={name} name={name} />; 
    }); 

Без arrow-body-style вариант, оператор блока ({ return ...}) не требуется в соответствии с Кевином ответ.

Это действительно открывает новый вопрос о том, какой стиль более уместен.

Для дальнейших ссылок: http://eslint.org/docs/rules/arrow-body-style