redux状態でプロパティを追加/変更するにはどうすればよいですか?

死神
    export default function() {
  return [
    {
      id: 1,
      author: "notCurrentUser",
      price: "200$",
      type: "Phone",
      name: "Redmi 8a",
      img: "https://i01.appmifile.com/webfile/globalimg/gaoruijia/Phone/C3K-red.png",
    },
    {
      id: 2,
      author: "notCurrentUser",
      price: "350$",
      type: "Phone",
      name: "Note 10",
      img: "https://www.sunrise.ch/en/kmu/geraete/handys/samsung-galaxy-note10-plus-5g.primaryproductimage.code-MDAwMDAwMDAwMDAwMDIwMDAx.format-hardware-configurator-l.png",
    },
    {
      id: 3,
      author: "notCurrentUser",
      price: "1000$",
      type: "Phone",
      name: "IPhone XS",
      img: "https://mimelon.com/uploads/catalog/Product//iphone-xs-max-space-select-2018.png",
    },
]
}

そのため、アクティブな製品のオブジェクトに新しいプロパティを追加したいと思います。例:IPhone XSを押し、を押すと、新しい小道具BASKET:TRUEをIPhoneXSのオブジェクトに追加します。そのように:

{
          id: 3,
          author: "notCurrentUser",
          price: "1000$",
          type: "Phone",
          BASKET: TRUE,
          name: "IPhone XS",
          img: "https://mimelon.com/uploads/catalog/Product//iphone-xs-max-space-select-2018.png",
        },

私はそのようなことをすることができると思いますが、私にはわかりません:

 switch (action.type) {
        case  types.BASKET:
            return {
                action.payload,
                {
                 BASKET: TRUE
                }
            };        

        default:
            return state;
    }
}
Awais Rafiq Chaudhry

コンポーネントが以下のようなものであり、バスケット属性を製品iPhone XSに追加するアクションをディスパッチするボタンがあるとすると名前が一緒に送信されます。

Component.js:

import { useDispatch } from 'react-redux';

const Component = () => {
   const dispatch = useDispatch();

   return (
     <div onClick={()=>dispatch(addToBasket('IPhone XS')}></div>
   )
}

actions.js:

export const addToBasket = (name) = dispatch => {
 dispatch({ type: BASKET, payload: name });
}

reducers.js:

const defaultState = {
  products: [{
  id: 1,
  author: "notCurrentUser",
  price: "200$",
  type: "Phone",
  name: "Redmi 8a",
  img: "https://i01.appmifile.com/webfile/globalimg/gaoruijia/Phone/C3K-red.png",
},
{
  id: 2,
  author: "notCurrentUser",
  price: "350$",
  type: "Phone",
  name: "Note 10",
  img: "https://www.sunrise.ch/en/kmu/geraete/handys/samsung-galaxy-note10-plus-5g.primaryproductimage.code-MDAwMDAwMDAwMDAwMDIwMDAx.format-hardware-configurator-l.png",
},
{
  id: 3,
  author: "notCurrentUser",
  price: "1000$",
  type: "Phone",
  name: "IPhone XS",
  img: "https://mimelon.com/uploads/catalog/Product//iphone-xs-max-space-select-2018.png",
}]
};

export default (state = defaultState, action) => {
  switch (action.type) {
    case actionTypes.BASKET: {
     let productToUpdate = state.products.find(item => item.name === action.payload);
     productToUpdate = { ...productToUpdate, BASKET: true }
     let products = state.products.filter(item => item.name !== productToUpdate.name);
    return { ...state, products : [...state.products, productToUpdate] } 
}

レデューサーファイル内:

  1. 「IPhoneXS」という名前の製品を見つけることで、更新が必要な特定の製品を見つけるだけです。
  2. BASKET: true製品に属性を追加します
  3. 以前の製品を削除し、この更新された製品をリストに追加して、製品の全体的なリストを更新します。

「IPhoneXS」という名前の製品が複数存在する可能性があるため、名前属性ではなくIDに基づいて製品を更新することをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

redux状態でプロパティを追加/変更するにはどうすればよいですか?

分類Dev

状態のオブジェクトのプロパティを変更するにはどうすればよいですか?

分類Dev

パス文字列からReduxの状態を変更するにはどうすればよいですか?

分類Dev

状態をreduxから変更して色を変更するにはどうすればよいですか?

分類Dev

春の環境でプロパティを変更するにはどうすればよいですか?

分類Dev

HttpRequest.ApplicationPathプロパティを手動で変更するにはどうすればよいですか?

分類Dev

ボタンでBeanプロパティを変更するにはどうすればよいですか?

分類Dev

RTTIでdelphiプロパティGetter / Setterを変更するにはどうすればよいですか?

分類Dev

WPFでTextblockのtextプロパティを変更するにはどうすればよいですか?

分類Dev

jqueryでcontent:urlのcssプロパティを変更するにはどうすればよいですか?

分類Dev

JavaScriptでCSSの表示プロパティを変更するにはどうすればよいですか?

分類Dev

初期化後に変更できないサンプル名を表すプロパティを追加するにはどうすればよいですか?

分類Dev

休止状態のエンティティで大文字のプロパティを使用するにはどうすればよいですか?

分類Dev

JavaScript:引数から要素プロパティを変更するにはどうすればよいですか?

分類Dev

jQueryのプロパティから値を変更するにはどうすればよいですか?

分類Dev

ルビー変数にプロパティを追加するにはどうすればよいですか?

分類Dev

CSSプロパティ値を要素の値に変更するにはどうすればよいですか?

分類Dev

実行時にstyleSheetプロパティを変更するにはどうすればよいですか?

分類Dev

React / Redux で状態を動的にプリロードするにはどうすればよいですか?

分類Dev

jQueryのヘッダープロパティを変更するにはどうすればよいですか?

分類Dev

バケットのプロパティを変更するにはどうすればよいですか

分類Dev

親要素の子プロパティを変更するにはどうすればよいですか?

分類Dev

既存のTextStyleの特定のプロパティを変更するにはどうすればよいですか?

分類Dev

google.maps.InfoWindowプロパティを変更するにはどうすればよいですか?

分類Dev

既存のTwilio番号のプロパティを変更するにはどうすればよいですか?

分類Dev

Androidカメラのプロパティを変更するにはどうすればよいですか?

分類Dev

特定のCSS疑似要素のプロパティを変更するにはどうすればよいですか?

分類Dev

Jetbrains IDEの選択プロパティを変更するにはどうすればよいですか?

分類Dev

疑似クラスのプロパティを変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    redux状態でプロパティを追加/変更するにはどうすればよいですか?

  2. 2

    状態のオブジェクトのプロパティを変更するにはどうすればよいですか?

  3. 3

    パス文字列からReduxの状態を変更するにはどうすればよいですか?

  4. 4

    状態をreduxから変更して色を変更するにはどうすればよいですか?

  5. 5

    春の環境でプロパティを変更するにはどうすればよいですか?

  6. 6

    HttpRequest.ApplicationPathプロパティを手動で変更するにはどうすればよいですか?

  7. 7

    ボタンでBeanプロパティを変更するにはどうすればよいですか?

  8. 8

    RTTIでdelphiプロパティGetter / Setterを変更するにはどうすればよいですか?

  9. 9

    WPFでTextblockのtextプロパティを変更するにはどうすればよいですか?

  10. 10

    jqueryでcontent:urlのcssプロパティを変更するにはどうすればよいですか?

  11. 11

    JavaScriptでCSSの表示プロパティを変更するにはどうすればよいですか?

  12. 12

    初期化後に変更できないサンプル名を表すプロパティを追加するにはどうすればよいですか?

  13. 13

    休止状態のエンティティで大文字のプロパティを使用するにはどうすればよいですか?

  14. 14

    JavaScript:引数から要素プロパティを変更するにはどうすればよいですか?

  15. 15

    jQueryのプロパティから値を変更するにはどうすればよいですか?

  16. 16

    ルビー変数にプロパティを追加するにはどうすればよいですか?

  17. 17

    CSSプロパティ値を要素の値に変更するにはどうすればよいですか?

  18. 18

    実行時にstyleSheetプロパティを変更するにはどうすればよいですか?

  19. 19

    React / Redux で状態を動的にプリロードするにはどうすればよいですか?

  20. 20

    jQueryのヘッダープロパティを変更するにはどうすればよいですか?

  21. 21

    バケットのプロパティを変更するにはどうすればよいですか

  22. 22

    親要素の子プロパティを変更するにはどうすればよいですか?

  23. 23

    既存のTextStyleの特定のプロパティを変更するにはどうすればよいですか?

  24. 24

    google.maps.InfoWindowプロパティを変更するにはどうすればよいですか?

  25. 25

    既存のTwilio番号のプロパティを変更するにはどうすればよいですか?

  26. 26

    Androidカメラのプロパティを変更するにはどうすればよいですか?

  27. 27

    特定のCSS疑似要素のプロパティを変更するにはどうすればよいですか?

  28. 28

    Jetbrains IDEの選択プロパティを変更するにはどうすればよいですか?

  29. 29

    疑似クラスのプロパティを変更するにはどうすればよいですか?

ホットタグ

アーカイブ