📜  如何为 react native 安装 redux - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:08:12.893000             🧑  作者: Mango

如何为 React Native 安装 Redux

Redux 是一个流行的状态管理库,它可以与 React Native 很好地结合使用。在本篇文章中,我们将介绍如何为 React Native 应用程序安装 Redux。

安装 Redux

首先,我们需要在项目中安装 Redux。可以通过 npm 命令来安装:

npm install redux

或者使用 yarn 安装:

yarn add redux
安装 React Redux

接下来,我们需要安装 React Redux,这是一个 Redux 和 React 之间的桥梁。使用 npm 命令:

npm install react-redux

或者使用 yarn 安装:

yarn add react-redux
创建 Redux Store

现在,我们需要创建一个 Redux store,它包含整个应用程序的状态。创建一个新文件,例如 store.js,然后导入 createStore 函数并创建 store:

import { createStore } from 'redux';

const initialState = {};

const reducer = (state = initialState, action) => {
  switch (action.type) {
    // Add your reducers here
    default:
      return state;
  }
};

const store = createStore(reducer);

export default store;

在这个示例中,我们定义了一个初始状态和一个 reducer 函数。后面我们将更详细地讨论如何使用 reducer 函数。

在应用中使用 Redux

现在,我们可以在应用程序中使用 Redux 了。我们需要在根组件中包装应用程序,并使用提供的 Provider 组件将 store 传递给它们。

import React from 'react';
import { Provider } from 'react-redux';
import store from './store';

const App = () => {
  return (
    <Provider store={store}>
      // Add your application components here
    </Provider>
  );
};

export default App;

这样,我们就可以在应用程序中的任何组件中使用 store 中的状态了。

创建 Action 和 Reducer

为了更新 store 中的状态,我们需要创建一个 action 和一个 reducer。

Action 是一个对象,它描述了发生了什么。例如,我们可以创建以下 action:

const addTodoAction = {
  type: 'ADD_TODO',
  payload: {
    id: 1,
    text: 'Buy milk',
  },
};

它描述了一个添加待办事项的操作,并附带了一个 id 和文本。

Reducer 是一个纯函数,接收当前状态和一个 action,并返回一个新的状态。这是一个 reducer 的示例:

const initialState = {
  todos: [],
};

const todoReducer = (state = initialState, action) => {
  switch (action.type) {
    case 'ADD_TODO':
      return {
        ...state,
        todos: [...state.todos, action.payload],
      };

    default:
      return state;
  }
};

这个 reducer 接收一个名为 todos 的数组,当收到 ADD_TODO action 时,它会返回包含新元素的新数组。

使用 connect 函数连接组件和 Redux

最后,我们需要将组件连接到 Redux。可以使用 connect 函数来从 store 中提取状态,并将其传递到组件的 props 中。

import React from 'react';
import { connect } from 'react-redux';

const Todos = ({ todos }) => {
  return (
    <ul>
      {todos.map((todo) => (
        <li key={todo.id}>{todo.text}</li>
      ))}
    </ul>
  );
};

const mapStateToProps = (state) => {
  return {
    todos: state.todos,
  };
};

export default connect(mapStateToProps)(Todos);

这个组件将通过 connect 函数连接到 store,并在当前状态中提取 todos 数组。

以上就是如何为 React Native 应用程序安装 Redux 的指南。祝您编码愉快!