2017-11-23 17 views
0

My状態には、オブジェクトの配列も含まれているオブジェクトの配列があります。ネストされたマップを使用して状態を更新します。es6

var state = { 
    prop1: null, 
    categories: [ 
    { 
     categoryId: 1, 
     tags: [ 
     { 
      tagId: 1, 
      name: 'AA11', 
      status: true, 
     }, 
     { 
      tagId: 2, 
      name: 'AA22', 
      status: false, 
     } 
     ] 
    }, 
    { 
     categoryId: 2, 
     tags: [ 
     { 
      tagId: 1, 
      name: 'BB11', 
      status: true, 
     }, 
     { 
      tagId: 2, 
      name: 'BB22', 
      status: false, // let's say i want to toggle this 
     } 
     ] 
    }, 
    ] 
}; 

タグのステータスを切り替えるアクションがあります。このアクションは、パラメータcategoryIdtagIdを受け取ります。

は、これまでのところ、私はこれを作ってみたが、それは私が最終的にマップコードを固定

return { 
    ...state, 
    categories: state.categories.map((category) => { 
    category.tags.map(tag => (
     (tag.tagId === action.tagId && category.categoryId === action.categoryId) ? { 
     ...tag, 
     status: !tag.status, 
     } : tag)); 
    return category; 
    }), 
}; 

答えて

0

動作しません。

return { 
    ...state, 
    categories: state.categories.map(category => ((category.id === action.categoryId) ? 
    { 
     ...category, 
     tags: category.tags.map(tag => (tag.id === action.tagId ? { 
     ...tag, status: !tag.status, 
     } : tag)), 
    } : category)), 
}; 
関連する問題