簡體   English   中英

Array.map 使用箭頭函數在 redux 減速器中返回 null

[英]Array.map returns null in a redux reducer using arrow functions

考慮這個項目數組:

items:[
 {
  _id: '111',
  quantity: 3
 },
 {
  _id: '222',
  quantity: 7
 }
]

我需要通過使用Array#map和 CURLY BRACES 沿着箭頭 => 循環來將值增加 1(請看下面的代碼),但這使得 myNewItems null,我猜這是因為變量 item 在最終以 myNewItems 為 null

這就是我在 redux 減速器中迭代的方式

return {
  ...state,
  myNewItems: items.map((item) => {
    var itemId = '111'

    item._id == itemId ?
      {
        ...item,
        quantity: item.quantity + 1
      } :
      item
  })
}

現在這使得 myNewItems 成為 null 而不是像下面這樣更新項目數組

items:[
 {
  _id: '111',
  quantity: 4 //has been incremented by 1
 },
 {
  _id: '222',
  quantity: 7
 }
]

我該如何度過這個難關?

您在map回調中缺少return語句。

items.map(
           (item) =>{
              var itemId = '111'
              return item._id == itemId?
              {...item, quantity: item.quantity + 1
              }:item
        })

map 高階 function 中缺少返回試試這個

return item._id == itemId
    ?{...item, quantity: item.quantity + 1}
    :item

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM