Я создаю приложение, в котором я заканчиваю с нормализованным состоянием. Затем он строит HTML на основе свойства content
. Идея состоит в том, что разделы могут иметь дочерние элементы, которые ссылаются на другие элементы в elements
.
this.state = {
elements: {
byId : {
1: {
content: 'Section',
children: [2, 3]
},
2: {
content: 'Child section'
},
3: {
content: 'Child section',
children: [4]
},
4: {
content: '2nd level-child section'
}
}
},
content: [1]
}
clone() {
???
};
Добавление, удаление довольно просто. Мне нужно иметь функциональность, чтобы клонировать элемент, и это дети. Так, например если я хотел бы клонировать 1-й раздел, он должен создать новые элементы и обновить все ids
в новом разделе.
Каков наилучший способ достичь этого? Или эта структура не подойдет для такой работы?
Желаемое состояние при клонировании
this.state = {
elements: {
byId: {
1: {
content: 'Section',
children: [2, 3]
},
2: {
content: 'Child section'
},
3: {
content: 'Child section',
children: [4]
},
4: {
content: '2nd level-child section'
},
// new elements
5: {
content: 'Section copy',
children: [6, 7] // updated ids
},
6: {
content: 'Child section copy'
},
7: {
content: 'Child section copy',
children: [8] //updated ids
},
8: {
content: '2nd level-child section copy'
},
}
},
content: [1, 5] // updated content
}