我最近開始了一個帶有反應的計算器專案。我創建了該專案并且它運行良好,但我只想為其添加一個新功能。我想,當我在運算子號點擊(例如“ ”,“ - ”,“*”,“/”) ,如果我點擊一個更存在時間和操作之前是相同的(例如1234 )時我點擊“ ”或“-”我的代碼沒有將它添加到代碼中并用之前的操作替換它,并且對“/”和“*”也這樣做
我還附上了存盤庫鏈接,以便您可以自己查看我的計算器源代碼。專案源代碼存盤庫
uj5u.com熱心網友回復:
請更新 handleClick 函式,如下所示:
const handleClick = (e) => {
if(result.length && result.charAt(result.length-1) != e.target.name || result.length == 0)
setResult(result.concat(e.target.name));
}
uj5u.com熱心網友回復:
在您的handleClick函式中,只需檢查當前字符是否為運算子符號(例如:' '、'-'、'*'、'/')并且當前result字串中的最后一個字符也是運算子符號。如果它們都是運算子符號,只需執行以下操作:
const handleClick = (e) => {
if (result.length > 0 && (result[result.length - 1] === ' ' || result[result.length - 1] === '-' || result[result.length - 1] === '*' || result[result.length - 1] === '/') && (e.target.name === ' ' || e.target.name === '-' || e.target.name === '*' || e.target.name === '/')) {
const newRes = result.slice(0, result.length - 1).concat(e.target.name);
setResult(newRes);
} else {
setResult(result.concat(e.target.name));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/379253.html
標籤:javascript 反应 网络 ecmascript-6 计算器
上一篇:經過一段時間后,您如何做某事?
