---
# System prepended metadata

title: 02. Accounting application
tags: ["\_記帳本", Side project 紀錄]

---

#### 10/12 開發紀錄：

- 在按鈕邏輯處理上發生了一些障礙，導致邏輯功能出不來。

#### 一些筆記:

- addNumber(),邏輯

``` calc.jsx
   const addNumber = (number) => {
    // symbol
    if (!symbol) {
      if (numA === 0) {
        setNumA(number);
      } else {
        const newNum = numA + number;
        setNumA(newNum);
      }
    } else {
      // 有符號再向下作
      setNumB(numB + number);
    }
  };
```

- 這邊拆成三個部分來看這段函數：

1. addNumber():

```jsx
  const addNumber = (number) => {

  };
```

2. 處理 numA:

- 當 `!symbol`
  踩雷小筆記 , 因為我們專案上的 symbol state 預設是("")
  這個時候是還沒有任何符號的。
  所以第一段 {} - 用來設定 numA"0" 為 鍵盤上的 "number"
  
  當 `numA === "0"` , 觸發 `setNumA(number)`
  當 `numA !== "0"` , 觸發 {}
  執行宣告一個新的變數 = `numA` + `number` 來組字串
  -> `setNumA(newNum)`
``` jsx
    if (!symbol) {
      if (numA === 0) {
        setNumA(number);
      } else {
        const newNum = numA + number;
        setNumA(newNum);
      }
    } 
```

3. 處理 numB , (觸發這邊表示此時 symbol === true)

```
else {
      // 有符號再向下作 , setB 去+ 觸發的鍵盤值
      setNumB(numB + number);
    }
```