我有一个状态数组,用于计算平均时间,也是状态。
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,
}
})
}
我的linter警告我allTimes是一个未使用的状态字段,即使我在setState中使用它。
这让我相信这是一种不好的做法,但我不确定为什么。这是我应该重构的东西,还是只是放下一个linter异常并继续前进?
答案 0 :(得分:1)
Linter警告您,因为您没有在任何组件中使用此状态。我第一次遇到我也很困惑。但是,当我想到更多一点似乎是正确的。因为,如果我不使用它,为什么我要创建一个州甚至我们setState?
因此,如果您不使用它,则创建和设置状态会发出警告。