使用 babel 进行复制时出现 ESLint 错误:
第 28 行:需要赋值或函数调用,但看到的是表达式 no-unused-expressions
第 29 行:需要赋值或函数调用,但看到的是表达式 no-unused-expressions
知道如何摆脱这些,同时使我的计时器仍然按预期工作吗?或者你有更好的方法让我做我的计时器吗?
class RequestTimer extends Component {
constructor(props) {
super(props);
this.state = {
seconds: 0,
minutes: 0,
hours: 0
}
this.getTime = this.getTime.bind(this);
}
getTime() {
let second = this.state.seconds
let minute = this.state.minutes;
let hour = this.state.hours;
this.state.seconds % 59 === 0 && this.state.seconds !== 0 ? minute += 1:null;
this.state.minutes % 59 === 0 && this.state.seconds % 59 === 0 && this.state.minutes !== 0 ? (hour += 1, minute = 0):null;
this.setState({
seconds: second +=1,
minutes: minute,
hours: hour
})
}
componentDidMount() {
this.timer = setInterval(this.getTime, 1000)
}
render() {
return (
<TimerContainer>
<h2>Last Request:</h2>
<p>{this.state.hours}h {this.state.minutes}m {this.state.seconds % 60}s</p>
</TimerContainer>
)
}
}
最佳答案
您想要使用正确的 if
语句:
getTime() {
let second = this.state.seconds
let minute = this.state.minutes;
let hour = this.state.hours;
if (this.state.seconds % 59 === 0 && this.state.seconds !== 0) {
minute += 1;
}
if (this.state.minutes % 59 === 0 && this.state.seconds % 59 === 0 && this.state.minutes !== 0) {
hour += 1;
minute = 0;
}
this.setState({
seconds: second +=1,
minutes: minute,
hours: hour
});
}
如果您不想对结果值执行任何操作,请不要使用三元运算符。尤其是当您没有 else
情况或必须使用逗号运算符来执行多项操作时,您不应该使用它。
关于javascript - ESLint - ReactJS 中没有未使用的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52274829/