Почему я получаю ошибку «no-unused-var» при использовании встроенной функции - PullRequest
0 голосов
/ 22 ноября 2018

Вот фрагмент моего кода:

const prevState = this.state;
this.setState(prevState => ({
  companies_checked: {
    ...prevState.companies_checked,
    [target.value]: target.checked
  }
}));

Он генерирует следующую ошибку:

Line 52:  'prevState' is assigned a value but 
never used  no-unused-vars

Я использую переменную в функции inline / arrow.Какой лучший способ исправить ошибку?

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Я использую переменную в функции inline / arrow.

Нет, нет.prevState, который вы используете в функции, объявляется как параметр функции.Он скрывает const -объявленный prevState от внешней области видимости.

Каков наилучший способ устранить ошибку?

Предполагается, что функцияработая как есть, просто опустите объявление const.

0 голосов
/ 22 ноября 2018

Попробуйте это (т.е. удалите строку, в которой вы объявляете prevState):

this.setState(prevState => ({
  companies_checked: {
    ...prevState.companies_checked,
    [target.value]: target.checked
  }
}));

Eslint жалуется, что вы объявили константу prevState, даже не используя ее впоследствии.Правильный способ исправить проблему - просто не объявлять ее в первую очередь.

prevState внутри вашего setState вызова верен - первый аргумент setState, отправляемый вашей функции обратного вызова, являетсяпредыдущее состояние, и это то, что вы хотите использовать внутри функции обратного вызова.

0 голосов
/ 22 ноября 2018

Я думаю, что это просто конфликт имен.

  // you already declared prevState
    const prevState = this.state;
    // change to this.setState(previousState => 
    this.setState(prevState => ({
      companies_checked: {
        ...prevState.companies_checked,
        [target.value]: target.checked
      }
    }));

Вы фактически не использовали prevState, который объявили

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...