Store của Zustand là một object độc lập với React, nên gọi trực tiếp được ở bất kỳ đâu:
ts
import { useAuthStore } from '@/store/auth'
// đọc snapshot hiện tại (không subscribe)
const token = useAuthStore.getState().token
// ghi từ axios interceptor khi gặp 401
useAuthStore.getState().clearSession()
// lắng nghe thay đổi ngoài component
const unsub = useAuthStore.subscribe(s => console.log(s.token))Lưu ý: getState() chỉ trả về giá trị tại thời điểm gọi, không phản ứng với thay đổi sau đó — đừng dùng trong render, chỉ dùng trong event handler, interceptor, hàm tiện ích.
Test: store là module-level singleton nên state rò rỉ giữa các test. Chuẩn hoá bằng cách lưu initial state rồi reset:
ts
const initial = useAuthStore.getInitialState()
beforeEach(() => useAuthStore.setState(initial, true))Tham số thứ hai true là replace — thay toàn bộ state thay vì merge, đảm bảo không còn field thừa từ test trước.