schema
スキーマストア (wc/store/schema)
概要
スキーマストアは WooCommerce ブロックに関連するルートを管理し、与えられた名前空間のルートデータの効率的な取得と更新を可能にします。このストアはリソースルートとのやりとりを効率化し、モジュールが必要に応じてエンドポイントパスに簡単にアクセスできるようにします。
このストアを利用するには、SCHEMA_STORE_KEYを参照するモジュールで__INLINE_CODE_0__をインポートします。@woocommerce/block-dataがwc.wcBlocksDataを指す外部として登録されていると仮定すると、__INLINE_CODE_2__を介してキーをインポートすることができます:
const { SCHEMA_STORE_KEY } = window.wc.wcBlocksData;
⚠️ これらのアクションは、リゾルバによって内部的に使用されることがほとんどなので、直接使用する必要はほとんどないはずです。
receiveRoutes( routes, namespace)
提供されたリソースルートのリストでストアを更新するために使用されるアクションオブジェクトを返します。
Parameters
- routes
array: 指定された名前空間にアタッチされたルートの配列。例:[ '/wc/blocks/products', '/wc/blocks/products/attributes/(?P<id>[\d]+)' ]。 - namespace
string: ルートが属する名前空間。例:/wc/blocks。
Returns
object: 以下のキーを持つリソースルートのリストでストアを更新するために使用するアクションオブジェクト。- type
string: アクションタイプ。 - routes
object: ルート名をキーとするルートオブジェクト。 - namespace
string: ルートが属する名前空間(例:/wc/blocks)。
- type
セレクタ
getRoute( state, namespace, resourceName, ids = [] )
これは、指定された名前空間、リソース名、および (必要であれば) ID のルートを取得するために使用されます。
Parameters
- state
object: 元の状態。 - namespace
string: ルートの名前空間(例:/wc/blocks) - resourceName
string: リクエストされるリソース(例:products/attributes/terms) - ids
array: ルートにIDのプレースホルダーがある場合にのみ必要です。
Returns
string: 利用可能であればルート。
例
もし、wc/blocks名前空間上の単一製品のルートを探しているのであれば、[ 20 ]をidとして持つことになります:
// '/wc/blocks/products/20'
wp.data.select( SCHEMA_STORE_KEY ).getRoute( '/wc/blocks', 'products', [ 20 ] );
getRoutes( state, namespace )
これは指定された名前空間に登録されたすべてのルートをフラット配列として返します。
Parameters
- state
object: 現在の状態。 - namespace
string: ルートを返す名前空間。
Returns
array: 与えられた名前空間のすべてのルートの配列。
getRouteFromResourceEntries
これは、ルート状態の指定されたスライスからルートを返します。
Parameters
- stateSlice
object:与えられた名前空間とリソース名のルート状態のスライス。 - ids
array(default:[]): ルートプレースホルダーで置き換える id 参照の配列。
Returns
string: 指定されたリソースエントリーのルート。ルートが見つからない場合は空文字列。
例
const store = select( SCHEMA_STORE_KEY );
const route = store.getRouteFromResourceEntries( stateSlice, ids );
プレースホルダを持つアセンブルルート
これはプレースホルダを含む組み立てられたルートを返します。
Parameters
- route
string: 組み立てるルート。 - routePlaceholders
array: ルートプレースホルダーの配列。 - ids
array: ルートプレースホルダー内で置換されるID参照の配列。
Returns
string: プレースホルダを実際の値に置き換えた、組み立てられたルート。
例
const store = select( SCHEMA_STORE_KEY );
const route = store.assembleRouteWithPlaceholders( route, routePlaceholders, ids );
