在 Redux 中,存取 Action Creators 中的全域儲存狀態可能是一個有爭議的話題。在這裡,我們將深入研究動作創建者中狀態存取的兩種方法,並探討它們的優缺點。
import store from '../store'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }
此方法直接導入商店,依賴它是一個從模組導出的單例。雖然功能強大,但由於伺服器渲染限制,每個請求通常需要單獨的存儲,因此不鼓勵使用。
export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }
此方法利用 Redux Thunk 中介軟體(建議的技術)。 Thunk 允許操作創建者分派函數而不是普通的操作對象,從而提供對分派和 getState 函數的存取。雖然它需要中間件,但它可以無縫地用於客戶端和伺服器端渲染。
最終,最佳方法取決於個人應用程式的要求。理想情況下,操作應包含最少的資訊;但是,必要時在操作建立器中使用 getState 是可以接受的。考慮這兩種方法的優缺點,然後選擇最適合您的專案的一種。
以上是Redux Action Creators 中的狀態存取何時適合您?的詳細內容。更多資訊請關注PHP中文網其他相關文章!