2016-11-10 44 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 

的视频细讲公平一点关于如何注册与商店减速器,所以该系列应该证明非常有帮助。

相关问题