繁体   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