[英]Accessing Store within Redux and React Native app
我開始開發一個應用程序,它將調用API,這需要包含我計划存儲在Redux存儲中的JWT。
通常,您可以通過使用mapStateToProps()
和connect()
將存儲的特定部分映射到組件的狀態來訪問Redux存儲,但是我想在不會最終成為React組件的文件中訪問Redux存儲。 / container - 只是一個處理API調用的純js文件。
這可能嗎?
對的,這是可能的。
Redux是框架無關的 ,盡管它是在React的基礎上制作的。
mapStateToProps()
和connect()
方法不是核心Redux庫的一部分,而是輔助庫“React-Redux”的一部分,它們專門為React中的Redux提供綁定。
值得一看的是Dan Abramov的Redux系列入門,以了解Redux如何工作的原則。
其中一個例子是Video 6和Video 7 ,他討論了Redux商店並描述了構成它的三種方法:
store.getState // gets the current application state
store.dispatch // changes the current application state by dispatching an action
store.subscribe // suscribes to changes and re-renders the app using the
// current state
關於如何在商店注冊Reducer,視頻會詳細介紹,因此該系列應該非常有用。
您可以使用createStore
返回的商店的getState()
函數。 您可以在函數中使用它來捕獲來自狀態的所需數據。
const myImportantData = () => store.getState().my.deep.data;
上面的版本直接使用商店,就像在全局變量中一樣。 這可以防止您在流程中使用多個商店。 通常這是你想要的,但在服務器上運行時卻不是這樣。 也就是說,在服務器上,你可能不需要JWT訪問。
但是,如果確實需要交換存儲,則可以將其作為參數傳遞或關閉store
本地變量:
const getDataGrabber = store => () => store.getState().my.deep.data;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.