Предположим, у меня есть такая структура данных:
"data": {
"1": {
"id": "1",
"type": "Parent",
"params": {...},
"children": [ 10, 11 ]
},
"2": {
"id": "2",
"type": "Parent",
"params": {...},
"children": [ 12 ]
},
"10": {
"id": "10",
"type": "Child",
"params": {...},
"children": [ ]
},
"11": {
"id": "11",
"type": "Child",
"params": {...},
"children": [ ]
}
"12": {
"id": "12",
"type": "Child",
"params": {...},
"children": [ ]
}
}
Теперь мне нужно создать селектор, который бы заменял дочерние идентификаторы элементами.
Я могу сделать что-то вроде этого:
createSelector(
(data, parent) => _.pick(data, item => item.type === "Child"),
(data, parent) => parent.children
(allChildren, parentChildren) => parentChildren.map(item => allChildren[item])
)
Проблема в том, что селектор будет пересчитываться каждый раз, когда любая запись в структуре данных изменяется.
Можно ли сделать так, чтобы мой селектор зависел только от изменений элементов дочернего типа?