javascript - ESLint - ReactJS 中没有未使用的表达式

标签 javascript reactjs refactoring eslint

使用 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/

相关文章:

javascript - 使用 Jquery ui Droppable 将元素直接插入 div

javascript - 如何在选择选项值上创建 x 数量的 div

javascript - 如何在存储选定对象后应用更多选择器

javascript - 我的 react-native 项目不是 Debug模式

css - 从 meteor 1.4 中的 node_modules 导入 css 并使用react

reactjs - 从构建 React.js 中排除 .js 文件

javascript - 处理未知数量的表单值

java - Tomcat 在 webapp 启动期间挂起

c# - 如何在删除 {} 括号时阻止 VisualStudio 展开所有内容

java - 重构大量 if 语句