查看我的代码React中的函数编程

时间:2018-12-12 06:38:20

标签: javascript reactjs functional-programming functional-testing

我试图学习在反应中编写函数式编程代码。 您能否检查并检查我的代码并对我说它是否起作用?还是我该怎么写呢!

非常感谢您

    oprationButton(val , oprator){ 

        if(oprator === 'min')
            return this.setState({currentVal: min(val)})
        else if(oprator === 'plus')
            return this.setState({currentVal: plus(val)})

        function min(val){ 
           if (val > 0)
            return val
            else return 0
        }

        function plus(val){
            return val + 1
        }      

}



    <button type="button" 
onClick={() => this.oprationButton(this.state.currentVal,'min')}>Click Me!</button>

2 个答案:

答案 0 :(得分:1)

您可以像这样更改代码

pluseButton(val, oprator) {
    if (oprator === 'min') {
        let min = this.mines(val)
        return this.setState({currentVal: min})
    } else if (oprator === 'plus')
        return this.setState({currentVal: ++val})
}

mines(val) {
    let sum = val - 1;
    if (sum > 0) return sum
    else return 0
}




 <button type="button" 
onClick={() => this.oprationButton(this.state.currentVal,'min')}>Click Me!</button>

我希望这段代码对您有帮助

答案 1 :(得分:0)

由于oprationButton正在对状态进行突变,该状态不是内部变量,并且不返回任何内容,因此它不是pure函数,也不是functional programming。 另一方面,内部函数plusmin是纯函数,可以说是一种函数式编程方法。