WooCommerce 文档

title: "结构化数据存储 (wc/store/schema)" post_status: publish comment_status: open taxonomy: category: - woocommerce post_tag: - Data Store - Reference - Block Development


结构化数据存储 (wc/store/schema)

概述

结构化数据存储管理与 WooCommerce Blocks 相关的路由,从而能够高效地检索和更新给定命名空间的路由数据。 此存储简化了与资源路由的交互,确保模块可以根据需要轻松访问端点路径。

用法

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

const { SCHEMA_STORE_KEY } = window.wc.wcBlocksData;

操作

⚠️ 您通常不需要直接使用这些操作,因为它们主要由解析器在内部使用。

receiveRoutes(routes, namespace)

此操作返回一个对象,用于使用提供的资源路由列表更新存储。

参数

返回值

选择器

getRoute(state, namespace, resourceName, ids = [])

此方法用于检索给定命名空间、资源名称和(如果需要)ID 的路由。

参数

返回值

示例

如果您正在查找 wc/blocks 命名空间中单个产品的路由,则 ids 将为 [ 20 ]

// '/wc/blocks/products/20'
wp.data.select( SCHEMA_STORE_KEY ).getRoute( '/wc/blocks', 'products', [ 20 ] );

getRoutes(state, namespace)

此方法将返回给定命名空间的所有已注册路由,并将其作为扁平数组返回。

参数

返回值

getRouteFromResourceEntries

此方法将从路由状态的给定切片中返回路由。

参数

返回值

例子

const store = select( SCHEMA_STORE_KEY );
const route = store.getRouteFromResourceEntries( stateSlice, ids );

assembleRouteWithPlaceholders

此函数将返回带有占位符的组装后的路由。

参数

返回值

例子

const store = select( SCHEMA_STORE_KEY );
const route = store.assembleRouteWithPlaceholders( route, routePlaceholders, ids );