簡體   English   中英

在Redux和React Native應用程序中訪問Store

[英]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 6Video 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM