Redux教程:动作Actions

根据Redux官方文档,操作是商店的唯一信息来源。它携带着来自应用程序的有效信息负载进行存储。

如前所述,动作是普通的JavaScript对象,必须具有type属性以指示所执行动作的类型。它告诉我们发生了什么事。类型应在您的应用程序中定义为字符串常量,如下所示:

const ITEMS_REQUEST = 'ITEMS_REQUEST';

除了此类型属性外,操作对象的结构完全取决于开发人员。建议将操作对象保持在尽可能轻的状态,并仅传递必要的信息。

要引起存储中的任何更改,您需要首先使用store.dispatch()函数调度一个动作。动作对象如下:

{ type: GET_ORDER_STATUS , payload: {orderId,userId } }
{ type: GET_WISHLIST_ITEMS, payload: userId }

Actions Creators

动作创建者是封装动作对象创建过程的函数。这些函数只是返回一个普通的Js对象,它是一个动作。它促进编写干净的代码,并有助于实现可重用性。

让我们了解动作创建器,该动作创建器使您可以调度动作“ ITEMS_REQUEST”,该动作从服务器请求产品列表数据。同时,在化器中以’ITEMS_REQUEST’操作类型将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()方法将许多动作创建者与调度功能绑定在一起。

作者:terry,如若转载,请注明出处:https://www.web176.com/redux/2232.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2021年3月31日 下午5:21
下一篇 2021年3月31日 下午5:27

相关推荐

发表回复

登录后才能评论