0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

payload

Posted at

1. ペイロードとは何か?

ペイロードは、アクションオブジェクトに含まれる追加のデータで、状態を更新するためにリデューサーに渡されます。アクションは通常、以下のような構造を持ちます:

type:アクションの種類を示す文字列。
payload:アクションに関連する追加のデータ。
例:

const addItemAction = {
  type: 'ADD_ITEM',
  payload: {
    id: 1,
    name: '商品A',
    price: 1000
  }
};

2. なぜペイロードが必要なのか?

データの伝達:payloadを使用して、リデューサーに必要なデータを渡すことができます。
状態の更新:リデューサーはpayloadのデータを使用して、現在の状態を新しい状態に変換します。
アクションの汎用性:同じtypeでも、payloadの内容を変えることで多様な状態変更が可能になります。

3. リデューサーでのペイロードの使用

リデューサーはアクションのtypeとpayloadを受け取り、状態を更新します。

例:

function cartReducer(state = [], action) {
  switch (action.type) {
    case 'ADD_ITEM':
      return [...state, action.payload];
    default:
      return state;
  }
}

この例では、ADD_ITEMアクションがディスパッチされると、payload内のアイテムがカートの状態に追加されます。

4. ペイロードのベストプラクティス

明確なデータ構造:payloadのデータは、できるだけシンプルで明確に保ちます。
不変性の維持:状態を直接変更せず、新しいオブジェクトを返すようにします。
エラー処理:エラーが発生した場合、payloadにエラーメッセージやステータスを含めることもあります。
例:エラーを含むアクション

const fetchErrorAction = {
  type: 'FETCH_ERROR',
  payload: {
    message: 'データの取得に失敗しました',
    code: 500
  },
  error: true
};

5. ペイロードと他のプロパティ

meta:アクションに関する追加情報を含める場合、metaプロパティを使用することがあります。
error:エラーを示す場合、errorプロパティをtrueに設定します。

6. まとめ

ペイロードは、アクションを通じてリデューサーに必要なデータを提供する重要な役割を持っています。適切に設計されたペイロードは、状態管理をより効率的で予測可能なものにします。

参考ポイント:

アクションは純粋なオブジェクトであり、typeとpayloadを含みます。
リデューサーはアクションのtypeを評価し、payloadのデータを使用して新しい状態を返します。
例:コンプリートなフロー
アクションの作成

function addItem(item) {
  return {
    type: 'ADD_ITEM',
    payload: item
  };
}

ディスパッチの実行

dispatch(addItem({ id: 1, name: '商品A', price: 1000 }));

リデューサーでの処理

function cartReducer(state = [], action) {
  switch (action.type) {
    case 'ADD_ITEM':
      return [...state, action.payload];
    default:
      return state;
  }
}

この流れにより、payloadを介して状態を一貫して管理できます。

最後までよんでいただきありがとうございます。
@y-t0910をフォロー,いいねしていただけると嬉しいです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?