2016-03-18 8 views
42

Sto usando "eslint-config-airbnb": "^6.1.0", per mantenere pulito il mio JavaScript.Dichiarazione di blocco inattesa che circonda il corpo della freccia

mio linter è infelice con quello che sembra essere il codice legittima:

enter image description here

Sembra che questo potrebbe essere un ongoing issue. Qualcuno ha qualche suggerimento per uno sviluppatore OCD su come affrontare questo nel frattempo? Forse disabilitando questa regola o altrimenti?

+2

Perché avete bisogno di '{return ...}' per una singola istruzione? Potresti usare 'this.state.todos.filter (filterTodo => filterTodo! == todo' – sarbbottam

+1

La pagina di problema che hai collegato spiega abbastanza bene la situazione, dov'è la confusione? Sembra strano che si noti come un errore piuttosto che un avvertimento, anche se probabilmente può essere configurato. –

risposta

65

L'istruzione di blocco non è necessaria per una singola espressione.

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

Per aggiungere la risposta di Kevin, l'errore è correlato alla configurazione di eslint. Detto ciò, se l'opzione arrow-body-style è impostata su true, OP è corretta. Un altro esempio potrebbe essere qualcosa di simile:

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

Senza arrow-body-style opzione, blocco di istruzioni ({ return ...}) non è necessario come da Kevin risposta.

In realtà si apre una nuova domanda su quale stile è più appropriato.

Per ulteriori riferimenti: http://eslint.org/docs/rules/arrow-body-style