- Redux Tutorial
- Redux - Home
- Redux - Overview
- Redux - Installation
- Redux - Core Concepts
- Redux - Data Flow
- Redux - Store
- Redux - Actions
- Redux - Pure Functions
- Redux - Reducers
- Redux - Middleware
- Redux - Devtools
- Redux - Testing
- Redux - Integrate React
- Redux - React Example
- Redux Useful Resources
- Redux - Quick Guide
- Redux - Useful Resources
- Redux - Discussion
Redux - 动作
根据 Redux 官方文档,操作是存储的唯一信息来源。它携带来自应用程序的信息负载进行存储。
如前所述,操作是纯 JavaScript 对象,必须具有 type 属性来指示所执行操作的类型。它告诉我们发生了什么。类型应在应用程序中定义为字符串常量,如下所示 -
const ITEMS_REQUEST = 'ITEMS_REQUEST';
除了这个类型属性之外,动作对象的结构完全取决于开发人员。建议使您的操作对象尽可能轻,并仅传递必要的信息。
要在商店中进行任何更改,您需要首先使用 store.dispatch() 函数分派一个操作。动作对象如下 -
{ type: GET_ORDER_STATUS , payload: {orderId,userId } } { type: GET_WISHLIST_ITEMS, payload: userId }
行动创造者
动作创建者是封装动作对象创建过程的函数。这些函数只是返回一个普通的 Js 对象,它是一个动作。它促进编写干净的代码并有助于实现可重用性。
让我们了解一下操作创建器,它允许您调度一个操作“ITEMS_REQUEST” ,该操作从服务器请求产品项目列表数据。同时,在'ITEMS_REQUEST'操作类型的reducer中将isLoading状态设置为true,以指示项目正在加载,但仍未从服务器接收到数据。
最初,假设没有加载任何内容,initialState对象中的 isLoading 状态为 false 。当浏览器接收到数据时,相应减速器中的“ITEMS_REQUEST_SUCCESS”操作类型中的 isLoading 状态将返回 false。此状态可以用作反应组件中的道具,以在请求数据时在页面上显示加载程序/消息。动作创建者如下 -
const ITEMS_REQUEST = ‘ITEMS_REQUEST’ ; const ITEMS_REQUEST_SUCCESS = ‘ITEMS_REQUEST_SUCCESS’ ; export function itemsRequest(bool,startIndex,endIndex) { let payload = { isLoading: bool, startIndex, endIndex } return { type: ITEMS_REQUEST, payload } } export function itemsRequestSuccess(bool) { return { type: ITEMS_REQUEST_SUCCESS, isLoading: bool, } }
要调用调度函数,您需要将操作作为参数传递给调度函数。
dispatch(itemsRequest(true,1, 20)); dispatch(itemsRequestSuccess(false));
您可以直接使用 store.dispatch() 来调度操作。但是,您更有可能使用名为connect()的 React-Redux 辅助方法来访问它。您还可以使用bindActionCreators()方法将多个动作创建者与调度函数绑定。