Không nên.
Cảnh báo đó nói rằng effect đọc một giá trị reactive (prop, state, hoặc biến tính từ chúng) nhưng không khai báo trong dependency array — nghĩa là khi giá trị đó đổi, effect không chạy lại và tiếp tục dùng giá trị của lần render cũ.
// cảnh báo: userId được đọc nhưng không khai báo
useEffect(() => {
fetchProfile(userId).then(setProfile)
}, [])
// đổi sang user khác vẫn hiện profile đầu tiênCách xử lý đúng theo thứ tự:
1. Khai báo đủ dependency — mặc định luôn làm cách này.
2. Nếu effect chạy quá nhiều vì dependency đổi mỗi render (object, function), sửa nguồn dependency: đưa function vào trong effect, tách primitive ra (user.id thay vì cả user), hoặc bọc bằng useMemo/useCallback.
3. Nếu thấy phải tắt lint mới đúng ý, thường effect đó không nên là effect — logic thuộc về event handler.
Tắt lint chỉ giấu cảnh báo, bug stale value vẫn còn và rất khó truy khi dữ liệu đổi theo route hoặc theo user.