2016-11-10 97 views
2

我開始開發將調用API的應用程序,該應用程序需要包含我計劃在Redux存儲中存儲的JWT。在Redux和React Native應用程序中訪問存儲

通常情況下,您可以通過將商店的特定部分映射到組件的狀態mapStateToProps()connect()來訪問Redux存儲,但是我希望在最終不會成爲React組件的文件中訪問Redux存儲/容器 - 只是一個將處理API調用的純js文件。

這可能嗎?

回答

1

您可以使用由createStore返回的商店的getState()功能。你可以在一個函數內部使用這個函數來捕捉來自狀態的所需數據。

const myImportantData =() => store.getState().my.deep.data; 

上面的版本直接使用商店,就像在一個全局變量中一樣。這可以防止您在流程中使用多個商店。通常這就是你想要的,但是在服務器上運行時這是不正確的。也就是說,在服務器上,您可能不需要JWT訪問權限。

如果你確實需要但是換店,那麼你可以把它作爲一個參數或關閉在store局部變量:

const getDataGrabber = store =>() => store.getState().my.deep.data; 
3

是的,這是可能的。

Redux是框架不可知的,雖然它是用React記住的。

mapStateToProps()connect()方法不是核心Redux庫的一部分,而是輔助庫'React-Redux'的一部分,它提供專門用於React中Redux的綁定。

值得看看丹·阿布拉莫夫的Getting started with Redux系列,以得到Redux的膽量工作原理。

其中的一個例子是Video 6Video 7,他討論了終極版店,並介紹了三種方法彌補:

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 

的視頻細講公平一點關於如何註冊與商店減速器,所以該系列應該證明非常有幫助。

相關問題