跳到主要内容

Collections Store (wc/store/collections)

概述​

Collections Store 允许在 WooCommerce Blocks 中检索与产品相关的集合。

使用方法​

要使用此存储,您需要在任何引用它的模块中导入 COLLECTIONS_STORE_KEY。 假设 @woocommerce/block-data 已注册为指向 wc.wcBlocksData 的外部依赖,您可以通过以下方式导入该键:

const { COLLECTIONS_STORE_KEY } = window.wc.wcBlocksData;

操作​

receiveCollection(namespace, resourceName, queryString, ids = [], items = [], replace = false)​

此操作将返回一个操作对象,该对象用于将集合结果分发到存储中,参数为给定的参数。

⚠️ 您通常不需要直接分发此操作,因为它由 getCollection 选择器的解析器使用。

参数​

  • namespace string: 集合的路由命名空间,例如 /wc/blocks。
  • resourceName string: 集合的资源名称,例如 products/attributes。
  • queryString string: 要添加到集合请求的附加查询字符串。 请注意,集合是根据查询字符串进行缓存的,例如 ?order=ASC。
  • ids array: 如果集合路由包含 ID 占位符,则您需要通过此参数提供这些 ID,顺序应与路由中占位符出现的顺序一致。
  • response Object: 一个包含 items 属性的对象,其中 items 属性包含来自响应的集合项(数组),以及一个 headers 属性,该属性与 window.Headers 界面匹配,包含来自响应的头部信息。
  • replace boolean: 指示是否应替换存储中给定索引(命名空间、资源名称、查询字符串)中已存在的任何项。

示例​

const { dispatch } = useDispatch( COLLECTIONS_STORE_KEY );
dispatch( receiveCollection( namespace, resourceName, queryString, ids, response ) );

receiveCollectionError​

此操作将返回一个操作对象,该对象用于将错误分发到存储中,参数为给定的参数。

参数​

  • namespace string: 集合的路由命名空间,例如 /wc/blocks。
  • resourceName string: 集合的资源名称,例如 products/attributes。
  • queryString string: 要添加到集合请求的附加查询字符串。 请注意,集合是根据查询字符串进行缓存的,例如 ?order=ASC。
  • ids array: 如果集合路由包含 ID 占位符,则您需要通过此参数提供这些 ID,顺序应与路由中占位符出现的顺序一致。
  • error object: 包含以下键的错误对象:
    • code string: 错误代码。
    • message string: 错误消息。
    • data object: 包含以下键的错误数据:
      • status number: HTTP 状态码。
      • params object: 错误的参数。
      • headers object: 错误的头部信息。

Example​

const { dispatch } = useDispatch( COLLECTIONS_STORE_KEY );
dispatch( receiveCollectionError( namespace, resourceName, queryString, ids, error ) );

receiveLastModified​

此函数将返回一个动作对象,用于将修改日期发送到服务器。该对象使用在派发操作时提供的参数。

参数​

  • timestamp number: 最后的修改日期的时间戳。

Example​

const { dispatch } = useDispatch( COLLECTIONS_STORE_KEY );
dispatch( receiveLastModified( timestamp ) );

Selectors​

getFromState​

此选择器将返回来自 collections 存储的状态。

返回值​

  • object: 来自 collections 存储的状态,包含以下属性:
    • namespace string: collection 的路由命名空间,例如:/wc/blocks。
    • resourceName string: collection 的资源名称,例如:products/attributes。
    • query object: collection 的查询参数,例如:{ order: 'ASC', sortBy: Price }。
    • ids array: 如果 collection 路由包含用于提供占位符值的数组(按顺序)。
    • type string: collection 的类型,例如:items。

或者

  • array | null | undefined: 如果 collection 缺少与提供的参数匹配的头部信息,则返回一个默认值(作为参数指定)。

Example​

const store = select( COLLECTIONS_STORE_KEY );
const state = store.getFromState( state, namespace, resourceName, queryString, ids, type, fallback );

getCollection​

此选择器将返回给定参数对应的 collection。 它有一个关联的解析器,如果选择器尚未被解析,则解析器会向服务器发送请求以获取 collection,并将结果发送到服务器。

返回值​

  • object: 返回 getFromState 对象(参见 getFromState)。

getCollectionHeader​

此选择器将使用给定的参数从 collection 响应中返回一个头部信息。 它有一个关联的解析器,如果 getCollection 尚未被解析,则解析器将使用这些参数来解析 getCollection。

返回值​

  • undefined: 如果集合包含头部,但没有与给定 header 参数匹配的头部,则返回 undefined。

或者

  • null: 如果集合没有与给定参数匹配的任何头部,则返回 null。

或者

  • object: 如果集合具有与给定参数匹配的头部,则返回一个包含以下属性的对象:
    • namespace string: 集合的路由命名空间,例如:/wc/blocks。
    • resourceName string: 集合的资源名称,例如:products/attributes。
    • header string: 头部键。
    • query Object: 集合的查询参数,例如:{ order: 'ASC', sortBy: Price }。
    • ids Array: 如果集合路由包含用于提供占位符值的 ids,则将这些值按顺序放在此数组中。

getCollectionHeaders​

此选择器将返回集合的头部信息。

返回值​

  • object: 返回 getFromState 对象(请参阅 getFromState)。

示例​

const store = select( COLLECTIONS_STORE_KEY );
const headers = store.getCollectionHeaders( state, namespace, resourceName, queryString );

getCollectionError​

此选择器将返回在获取集合时发生的任何错误。

返回值​

  • object: 返回 getFromState 对象(请参阅 getFromState)。

示例​

const store = select( COLLECTIONS_STORE_KEY );
const error = store.getCollectionError( state, namespace, resourceName, queryString );

getCollectionLastModified​

此选择器将返回集合的最后修改日期。

返回值​

  • number: 集合的最后修改日期,如果不存在最后修改日期,则返回 0。

示例​

const store = select( COLLECTIONS_STORE_KEY );
const lastModified = store.getCollectionLastModified( state, namespace, resourceName, queryString );