因為useEffect這個hook本身不知道你所使用的外部function他會不會變動,他需要你將這個function放到依賴項上,這樣一來萬一有差錯function被改變了,也會重新渲染讓你知道哪裡錯誤
這就是為什麼即便是絕對不會變的函式像是dispatch也必須要遵守這個規定,所有在useEffect使用的到的function都必須放在依賴項。