React 计算器 - 等号逻辑
React Calculator - Equal Sign Logic
大家好,我需要一些关于我正在为 freecodecamp 工作的 React 计算器测试项目的帮助,这是我目前的代码:https://codepen.io/mav1283/pen/VGLxJy?editors=0010
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();
}
我想出了每次点击等号时如何计算输入方程式,但我很难尝试解决或设置背后的逻辑,以便每次输入数字时它都会替换初始值值,但如果我输入运算符,它将重新使用旧的计算值
我还没有添加 % 和 positive/negative 功能,我会在了解等号背后的逻辑后立即添加。另外上面的状态显示是临时的,所以我可以看到每个动作的变化。需要帮助谢谢!
所以您已经完成了大部分工作以获得您想要的。我没有详细查看您的代码,我只是在没有真正理解它或检查副作用的情况下,让它按照您的意愿去做,但这应该给您一个起点:Updated codepen
此外,由于您使用的是 Babel,所以这个功能很酷。您不需要将 this
显式绑定到所有 class 函数。您可以只使用 class 箭头函数。请参阅我添加的 resetState
函数。
大家好,我需要一些关于我正在为 freecodecamp 工作的 React 计算器测试项目的帮助,这是我目前的代码:https://codepen.io/mav1283/pen/VGLxJy?editors=0010
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();
}
我想出了每次点击等号时如何计算输入方程式,但我很难尝试解决或设置背后的逻辑,以便每次输入数字时它都会替换初始值值,但如果我输入运算符,它将重新使用旧的计算值
我还没有添加 % 和 positive/negative 功能,我会在了解等号背后的逻辑后立即添加。另外上面的状态显示是临时的,所以我可以看到每个动作的变化。需要帮助谢谢!
所以您已经完成了大部分工作以获得您想要的。我没有详细查看您的代码,我只是在没有真正理解它或检查副作用的情况下,让它按照您的意愿去做,但这应该给您一个起点:Updated codepen
此外,由于您使用的是 Babel,所以这个功能很酷。您不需要将 this
显式绑定到所有 class 函数。您可以只使用 class 箭头函数。请参阅我添加的 resetState
函数。