useExecuteActionLazy
useExecuteActionLazy
はアクションの実行を遅延させるためのフックです。このフックはアクションの識別子を引数として受け取り、そのアクションの実行を開始する関数とアクションの実行状態を返します。
基本的な使い方
const App = () => {
const [execute, { data, loading, error }] = useExecuteActionLazy("action-id");
const handleClick = () => {
execute({
company_name: "株式会社ベースマキナ",
user_id: 123,
checked: true,
created: "2023-01-01",
});
};
return (
<div>
<button onClick={handleClick}>Execute Action</button>
{loading && <LoadingIndicator />}
{data && <Table rows={data.results[0].success ?? []} />}
</div>
);
};
詳細なインターフェース
引数
引数名 | 型 | 説明 | 例 |
---|---|---|---|
actionId | string | 実行するアクションのID、または識別子。 | c3hc2ii23akg0sokf9j0 , get-user |
戻り値
プロパティ名 | 型 | 説明 | 例 |
---|---|---|---|
execute | async function | 引数としてアクションのパラメータを受け取り、アクションを実行する関数。data をプロパティに持つオブジェクトのPromise を返します。 | - |
state | object | アクションの実行状態を表すオブジェクト。このオブジェクトはloading 、data 、error の3つのプロパティを持ちます。 | - |
state.loading | boolean | アクションが現在実行中かどうかを示すブール値。 | true |
state.data | object | アクションの実行結果。このオブジェクトはresults という名前の配列を持っておりsuccess と failure のプロパティが含まれます。 | {"results":[{"success":[{"id":1,"name":"山田太郎"}]}]} |
state.error | object | アクションの実行中に発生したエラー。 | - |
なおexecute
関数の引数のパラメータは、キーがパラメータ名、値がパラメータに渡す値のオブジェクト(例:{ username: 'JohnDoe' }
)となり、パラメータの入力値の種類ごとにプロパティの値に渡せる値の型は以下です。
入力値の種類 | 型 | 説明 | 例 |
---|---|---|---|
テキスト | string | - | { company_name: '株式会社ベースマキナ' } |
数値 | number | null | - | { user_id: 123 } |
日付 | Date | string | number | null | string はDate 型に変換できる値、number はUnixTimestamp (秒)を入力してください。 | { created: '2023-01-01', updated: new Date(), deleted: 1609459200 } |
ファイル | File | null | - | { upload_text: new File(['test'], 'test.txt', { type: 'text/plain' }) } |
真偽値 | boolean | - | { checked: true } |
JSON値 | string | number | Date | null | JSON値の種類ごとに型が異なります。 テキストなら string | null 、数値ならnumber | null 、日付ならstring | number | Date | null を渡せます。日付の場合 string はDate 型に変換できる値、number はUnixTimestamp (秒)を入力してください。 | { company_name: '株式会社ベースマキナ', user_id: 123, created: '2023-01-01', deleted: null } |
SQL | string | - | { query: 'SELECT * FROM users;' } |
システム値 | string | - | { offset: '20' } |
配列 | Array | 各要素の種類の型は、各入力値の種類の型と同じです。 | { user_ids: [10, 11, 12] } |
タプル | Array | 各要素の種類の型は、各入力値の種類の型と同じです。 | { id_and_name: [123, 'taro'] } |