collections
コレクションストア (wc/store/collections)
概要
コレクションストアはWooCommerceブロック内の商品関連コレクションを取得することができます。
このストアを利用するには、それを参照するモジュールでCOLLECTIONS_STORE_KEYをインポートします。@woocommerce/block-dataがwc.wcBlocksDataを指す外部として登録されていると仮定すると、このキーをインポートできます:
const { COLLECTIONS_STORE_KEY } = window.wc.wcBlocksData;
receiveCollection( namespace, resourceName, queryString,ids = [], items = [], replace = false )
これは、コレクション結果をストアにディスパッチする際に使用される、与えられた引数のアクションオブジェクトを返します。
⚠️ このアクションは
getCollectionセレクタのリゾルバによって使用されるため、直接ディスパッチする必要はほとんどないはずだ。
Parameters
- namespace
string: コレクションのルート名前空間 (例:/wc/blocks)。 - resourceName
string: コレクションのリソース名 (例:products/attributes)。 - queryString
string: コレクションのリクエストに追加するクエリ文字列。コレクションはクエリ文字列によってキャッシュされることに注意してください (例:?order=ASC)。 - ids
array: コレクションルートに ID のプレースホルダーがある場合は、この引数を使用して、ルート内でのプレースホルダーの出現順序で指定します。 - response
Object: レスポンス (配列) のコレクションアイテムを含むitemsプロパティと、レスポンスのヘッダーを含むwindow.Headersインターフェースに一致するheadersプロパティを含むオブジェクト。 - replace
boolean: ストア内に既に値がある場合、指定されたインデックス (namespace、resourceName、queryString) のストア内の既存のアイテムを置き換えるかどうか。
例
const { dispatch } = useDispatch( COLLECTIONS_STORE_KEY );
dispatch( receiveCollection( namespace, resourceName, queryString, ids, response ) );
レシーブ・コレクション・エラー
これは、ストアにエラーをディスパッチする際に使用される、与えられた引数のアクションオブジェクトを返します。
Parameters
- namespace
string: コレクションのルート名前空間(例:/wc/blocks)。 - resourceName
string: コレクションのリソース名(例:products/attributes)。 - queryString
string: コレクションのリクエストに追加するクエリ文字列。コレクションはクエリ文字列によってキャッシュされることに注意してください(例:?order=ASC)。 - ids
array: コレクションのルートにIDのプレースホルダーがある場合は、この引数で、ルート内でのプレースホルダーの出現順序に従って指定します。 - error
object: 以下のキーを持つエラーオブジェクト。- code
string: エラーコード。 - message
string: エラーメッセージ。 - data
object: 以下のキーを持つエラーデータ:- status
number: HTTP ステータスコード。 - params
object: エラーのパラメーター。 - headers
object: エラーのヘッダー。
- status
- code
例
const { dispatch } = useDispatch( COLLECTIONS_STORE_KEY );
dispatch( receiveCollectionError( namespace, resourceName, queryString, ids, error ) );
receiveLastModified
これは、指定された引数に対応するアクションオブジェクトを返します。
Parameters
- timestamp
number: 最終更新日のタイムスタンプ。
例
const { dispatch } = useDispatch( COLLECTIONS_STORE_KEY );
dispatch( receiveLastModified( timestamp ) );
セレクタ
ゲットフロムステート
このセレクタは、コレクションストアから状態を返します。
Returns
object: コレクションストアから取得された状態。以下のプロパティを持ちます。- namespace
string: コレクションのルート名前空間。例:/wc/blocks - resourceName
string: コレクションのリソース名。例:products/attributes - query
object: コレクションのクエリ引数。例:{ order: 'ASC', sortBy: Price } - ids
array: コレクションルートにIDのプレースホルダーがある場合は、この配列にそれらのプレースホルダーの値を(順番に)指定します。 - type
string: コレクションのタイプ。例:items
- namespace
もしくは
array|null|undefined: 指定された引数にマッチするヘッダがコレクションにない場合に、フォールバック値 (パラメータとして指定) を返します。
例
const store = select( COLLECTIONS_STORE_KEY );
const state = store.getFromState( state, namespace, resourceName, queryString, ids, type, fallback );
getCollection
このセレクタは、与えられた引数のコレクションを返します。兄弟リゾルバを持つので、セレクタが解決されたことがない場合、リゾルバはコレクションをサーバにリクエストし、結果をストアにディスパッチします。
Returns
object:getFromStateオブジェクトを返します (getFromStateを参照ください)。
コレクションヘッダー
このセレクタは、与えられた引数を使ってコレクションレスポンスからヘッダを返します。このセレクタには兄弟リゾルバがあり、getCollection が解決されなかった場合に、引数を使用して解決します。
Returns
-
undefinedを返します: コレクションにヘッダがあるが、与えられたheader引数にマッチするヘッダがない場合、undefinedが返されます。 -
nullを返します: コレクションが与えられた引数にマッチするヘッダを持っていない場合、nullが返されます。 -
object: コレクションが与えられた引数にマッチするヘッダーを持つ場合、以下のプロパティを持つオブジェクトが返される:- nameespace
string: コレクションのルート名前空間、例:/wc/blocks. - resourceName
string: コレクションのリソース名、例products/attributes。 - header
string: ヘッダーのヘッダーキー。 - query_
Object: コレクションのクエリ引数: コレクションのクエリー引数。 - ids_
Array: コレクションルートにidsのプレースホルダがある場合は、この配列にプレースホルダの値を指定します (順番に)。
- nameespace
getCollectionHeaders
このセレクタはコレクションのヘッダを返します。
Returns
object:getFromStateオブジェクトを返します (getFromStateを参照ください)。
例
const store = select( COLLECTIONS_STORE_KEY );
const headers = store.getCollectionHeaders( state, namespace, resourceName, queryString );
コレクションエラー
このセレクタは、コレクションの取得中に発生したエラーを返します。
Returns
object:getFromStateオブジェクトを返します (getFromStateを参照ください)。
例
const store = select( COLLECTIONS_STORE_KEY );
const error = store.getCollectionError( state, namespace, resourceName, queryString );
getCollectionLastModified
このセレクタは、コレクションの最終更新日を返します。
Returns
number: コレクションの最終更新日。最終更新日がない場合は0。
例
const store = select( COLLECTIONS_STORE_KEY );
const lastModified = store.getCollectionLastModified( state, namespace, resourceName, queryString );
