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
}
]
},
]
};
タグのステータスを切り替えるアクションがあります。このアクションは、パラメータcategoryId
とtagId
を受け取ります。
は、これまでのところ、私はこれを作ってみたが、それは私が最終的にマップコードを固定
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;
}),
};