Javascript 反应计算器-等号逻辑
大家好,我需要一些关于react计算器测试项目的帮助,我正在为freecodecamp工作,以下是我到目前为止的代码: 我知道了如何在每次我点击等号时计算输入方程,但我很难尝试解决或设置背后的逻辑,因此每次我输入一个数字时,它将替换初始值,但如果我输入一个运算符,它将重复使用旧的计算值Javascript 反应计算器-等号逻辑,javascript,reactjs,codepen,Javascript,Reactjs,Codepen,大家好,我需要一些关于react计算器测试项目的帮助,我正在为freecodecamp工作,以下是我到目前为止的代码: 我知道了如何在每次我点击等号时计算输入方程,但我很难尝试解决或设置背后的逻辑,因此每次我输入一个数字时,它将替换初始值,但如果我输入一个运算符,它将重复使用旧的计算值 我还没有添加%和正/负功能,我会在得到等号背后的逻辑后立即添加它。此外,上面的状态显示是临时的,因此我可以看到每个操作的更改。需要帮助,谢谢 所以你已经完成了大部分工作来得到你想要的东西。我没有详细研究您的代码,
我还没有添加%和正/负功能,我会在得到等号背后的逻辑后立即添加它。此外,上面的状态显示是临时的,因此我可以看到每个操作的更改。需要帮助,谢谢 所以你已经完成了大部分工作来得到你想要的东西。我没有详细研究您的代码,我只是将其弯曲以实现您想要的功能,而没有真正理解它或检查其副作用,但这应该为您提供一个起点: 还有,这是一个很酷的功能,因为你使用的是巴别塔。您不需要显式地将
此
绑定到所有类函数。您可以只使用类箭头函数。请参阅我添加的resetState
功能
evalEquation(){
const {equation, calculations, output,operatorFlag,equalsFlag} = this.state;
const finalEquation = equation.replace(/\x/g,'*').replace(/\÷/g,'/');
const answer = String(math.eval(finalEquation));
if(equalsFlag === false){
this.setState({
equation: answer,
output: answer,
equalsFlag: true
});
}
this.playAudio();
}