Как устранить предупреждение с помощью ESlint: Disallow Assignment in return Statement (no-return-assign)? - PullRequest
0 голосов
/ 02 июля 2018

Я использую следующий пакет в своем приложении React для создания компонента Recaptcha: https://github.com/appleboy/react-recaptcha

Вот как выглядит компонент с предупреждением eslint: ESlint warning code block

this.recaptchaRef определяется следующим образом: this.recaptchaRef = React.createRef();

Эта ссылка позволяет мне сбросить Recaptcha, когда в моей форме есть ошибка, например: this.recaptchaRef.reset();

Как бы я мог разрешить эту ошибку без написания комментариев ESlint?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Согласно документации Функции стрелок они могут иметь либо "краткое тело", либо обычное "тело блока".

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

Так что в примере, который вы используете, указано "краткое тело". Сжатое тело означает, что нет скручивающих скобок. Следовательно, даже если там, если нет возвращаемого ключевого слова, выражение возвращается. Так как вы хотите избежать возврата выражения, вам необходимо изменить тело на «block body», т.е. указать фигурные скобки после оператора =>, т.е.

ref = {event => {
    this.recaptchaRef = event;
}};
0 голосов
/ 02 июля 2018

Функции стрелок, если после => нет {, будут возвращать любое последующее выражение. В данный момент функция стрелка назначает event для this.recaptchaRef и , возвращая event. (даже если потребитель полностью проигнорирует возвращаемое значение, он все равно выдаст ошибку linting.) Поэтому просто используйте фигурные скобки, чтобы ничего не возвращалось:

ref={(event) => {
  this.recaptchaRef = event;
}}
...