React linter warning: неиспользуемое поле состояния - пока поле состояния используется в setState - PullRequest
0 голосов
/ 31 мая 2018

У меня есть массив раз в состоянии, которое я использую для вычисления среднего времени, также в состоянии.

this.state = {
  avgTime: null,
  allTimes: []
}

затем метод для вычисления:

this.getTime = () => {
  this.setState((prevState) => {
    const timeDelta = Date.now() - this.state.startTime;
    prevState.allTimes.push(timeDelta);
    const factor = 10 ** -1;
    const avgTime = Math.round((prevState.allTimes.reduce((a, b) => a + b) /
      prevState.allTimes.length) * factor) / factor;
    return {
      avgTime,
      allTimes: prevState.allTimes,
    }
  })
}

МойЛинтер предупреждает меня, что allTimes - это неиспользуемое поле состояния, хотя я использую его в setState.

Это заставляет меня верить, что это плохая практика, но я не знаю почему.Это что-то, что я должен реорганизовать, или просто отбросить исключение линтера и двигаться дальше?

1 Ответ

0 голосов
/ 31 мая 2018

Linter предупреждает вас, потому что вы не используете это состояние ни в одном из ваших компонентов.Когда я впервые столкнулся с этим, я тоже запутался.Но когда я думаю немного больше, это казалось правильным.Так как, почему я создаю состояние, и даже мы используем setState, если я им не пользуюсь?

Итак, создание и настройка состояния вызывает предупреждение, если вы его не используете.

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