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