Неожиданный оператор блока, окружающий тело стрелки с помощью ESLint

#javascript #reactjs #eslint #lint #arrow-functions

#javascript #reactjs #eslint #lint #стрелка-функции

Вопрос:

Следующий код содержит это предупреждение в консоли:

Неожиданный оператор блока, окружающий тело стрелки; переместите возвращаемое значение сразу после =` arrow-body-style

  blobToDataURL = blob => {
    return new Promise((resolve, reject) => {
      const reader = new FileReader();
      reader.onerror = reject;
      reader.onload = e => resolve(reader.result);
      reader.readAsDataURL(blob);
    });
  };
  

Что это значит?

Ответ №1:

Функции стрелки могут принимать одну из двух форм:

 () => return_value;
  

и

 () => {
    something;
    something;
    return return_value;
};
  

Предупреждение, которое вы получаете, заключается в том, что вы используете второй формат, даже если у вас есть только один оператор, который вы возвращаете, поэтому вы можете использовать первую форму.

Ответ №2:

Он хочет, чтобы вы использовали неявный возврат :

 blobToDataURL = blob => 
     new Promise((resolve, reject) => {
      const reader = new FileReader();
      reader.onerror = reject;
      reader.onload = e => resolve(reader.result);
      reader.readAsDataURL(blob);
    });