我试图学习在反应中编写函数式编程代码。 您能否检查并检查我的代码并对我说它是否起作用?还是我该怎么写呢!
非常感谢您
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>
答案 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
。
另一方面,内部函数plus
和min
是纯函数,可以说是一种函数式编程方法。