在Redux和React Native应用程序中访问Store

old*_*cho 2 javascript react-native redux

我开始开发一个应用程序,它将调用API,这需要包含我计划存储在Redux存储中的JWT.

通常,您可以通过商店的特定部分映射到组件的使用状态进入终极版商店mapStateToProps()connect(),但我想这不会最终被一个阵营组件/容器的文件中访问终极版店-只是一个纯粹的将处理API调用的js文件.

这可能吗?

DDS*_*DDS 5

您可以使用所getState()返回的商店的功能createStore。您可以在从状态中获取所需数据的函数中使用此函数。

const myImportantData = () => store.getState().my.deep.data;
Run Code Online (Sandbox Code Playgroud)

上面的版本直接在全局变量中使用商店。这样可以防止您在流程中使用多个商店。通常这就是您想要的,但是在服务器上运行时并非如此。就是说,在服务器上,您可能仍然不需要JWT访问。

但是,如果确实需要交换存储,则可以将其作为参数传递或通过store局部变量关闭:

const getDataGrabber = store => () => store.getState().my.deep.data;
Run Code Online (Sandbox Code Playgroud)


Pin*_*eda 5

对的,这是可能的.

Redux是框架无关的,尽管它是在React的基础上制作的.

mapStateToProps()connect()方法是不是核心终极版库"阵营-终极版",这提供绑定专为终极版使用内无反应,但助手库的一部分.

值得一看的是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
Run Code Online (Sandbox Code Playgroud)

关于如何在商店注册Reducer,视频会详细介绍,因此该系列应该非常有用.