Redux 在 React Native 中的使用流程

打印 上一主题 下一主题

主题 796|帖子 796|积分 2388

Redux 是一个用于 JavaScript 应用程序的状态管理工具,广泛应用于 React 和 React Native 中。带你通过在 React Native 中使用 Redux 的完整流程。

1. 安装 Redux 相关包

首先,使用以下命令安装 redux 和 react-redux:
  1. npm install redux react-redux
复制代码
这将会安装 Redux 核心库和与 React 交互所需的 react-redux 库。

2. 创建 Redux Store

接下来,我们需要创建一个 Redux store。首先,在 src 目录下创建 store.js 文件,并设置 store。
  1. // src/store.js
  2. import { createStore } from 'redux';
  3. import rootReducer from './reducers';
  4. const store = createStore(rootReducer);
  5. export default store;
复制代码
这里使用 createStore 来创建 Redux store,并将全部的 reducers 组合成一个根 reducer。

3. 界说 Reducer

Reducer 是纯函数,用于描述如何根据 action 更新应用的状态。我们在 src/reducers/index.js 中界说 reducer。
  1. // src/reducers/index.js
  2. import { combineReducers } from 'redux';
  3. const initialState = {
  4.   count: 0,
  5. };
  6. function counterReducer(state = initialState, action) {
  7.   switch (action.type) {
  8.     case 'INCREMENT':
  9.       return { ...state, count: state.count + 1 };
  10.     case 'DECREMENT':
  11.       return { ...state, count: state.count - 1 };
  12.     default:
  13.       return state;
  14.   }
  15. }
  16. const rootReducer = combineReducers({
  17.   counter: counterReducer,
  18. });
  19. export default rootReducer;
复制代码
在这里,我们创建了一个简朴的 counterReducer 来处置惩罚增减计数的操纵。

4. 创建 Actions

Actions 是普通的 JavaScript 对象,描述发生了什么事件。在 src/actions/index.js 中,我们界说两个 action:increment 和 decrement。
  1. // src/actions/index.js
  2. export const increment = () => ({
  3.   type: 'INCREMENT',
  4. });
  5. export const decrement = () => ({
  6.   type: 'DECREMENT',
  7. });
复制代码


  • increment: 用于增长计数。
  • decrement: 用于减少计数。

5. 在应用中提供 Store

接下来,在 App.js 中通过 Provider 将 Redux store 传递给整个应用,确保每个组件都可以访问到 store。
  1. // App.js
  2. import React from 'react';
  3. import { Provider } from 'react-redux';
  4. import store from './src/store';
  5. import Counter from './src/Counter';
  6. const App = () => (
  7.   <Provider store={store}>
  8.     <Counter />
  9.   </Provider>
  10. );
  11. export default App;
复制代码


  • Provider 组件将 Redux store 提供给应用中的全部组件。
  • 这里将 Counter 组件作为子组件嵌入此中。

6. 连接组件与 Redux

现在,我们将组件连接到 Redux。使用 connect 方法将 Redux store 的状态传递给组件,同时将 action creators 绑定到组件的 props 上。
  1. // src/Counter.js
  2. import React from 'react';
  3. import { View, Text, Button } from 'react-native';
  4. import { connect } from 'react-redux';
  5. import { increment, decrement } from './actions';
  6. const Counter = ({ count, increment, decrement }) => {
  7.   return (
  8.     <View>
  9.       <Text>Count: {count}</Text>
  10.       <Button title="Increment" onPress={increment} />
  11.       <Button title="Decrement" onPress={decrement} />
  12.     </View>
  13.   );
  14. };
  15. const mapStateToProps = (state) => ({
  16.   count: state.counter.count,
  17. });
  18. const mapDispatchToProps = {
  19.   increment,
  20.   decrement,
  21. };
  22. export default connect(mapStateToProps, mapDispatchToProps)(Counter);
复制代码


  • mapStateToProps: 从 Redux store 中获取 count 状态,并将其映射到组件的 props。
  • mapDispatchToProps: 将 increment 和 decrement actions 映射到组件的 props,使得组件可以通过按钮触发相应的 action。

7. 使用 Redux DevTools (可选)

在开发过程中,使用 Redux DevTools 可以帮助你调试应用的状态变化。确保你已经安装了 Redux DevTools 扩展,并在创建 store 时启用它:
  1. const store = createStore(
  2.   rootReducer,
  3.   window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
  4. );
复制代码
如许,Redux DevTools 将会自动加载并提供交互式调试功能。

总结

通过以下步骤,你可以在 React Native 项目中成功集成 Redux:

  • 安装依靠:安装 redux 和 react-redux。
  • 创建 Store:使用 createStore 创建 Redux store。
  • 界说 Reducers:编写 reducers 来处置惩罚不同的 actions。
  • 创建 Actions:界说用于修改状态的 actions。
  • 提供 Store:通过 Provider 将 Redux store 传递给整个应用。
  • 连接组件:使用 connect 将 Redux store 和组件连接。
完成以上步骤后,你的 React Native 应用就能够使用 Redux 来管理状态了。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表