Приложение предназначено для создания древовидной структуры. Узел дерева определяется:Реквизит или состояние для редактора древовидной структуры данных
// This is a node
{
images: [{x:0, y:0, width: 100, height: 100}, ...],
subnodes: {key1: [<node>...], key2: [<node>...]}
}
интерфейс выглядит как
+----------+----------------------------+
| | |
| Tree | +---+ |
| Overview | | | +--------+ |
| | | | | | |
| | | | +--------+ |
| | +---+ |
| | |
| | drag drop to resize |
| | and position |
| +----------------------------+
| | |
| | some options for leaf |
| | |
| | |
+----------+----------------------------+
левая сторона является общая структура данных в результате. Правая сторона предназначена для редактирования узла, выбранного в левой части.
Вопрос в том, следует ли использовать данные узла в качестве реквизита или состояния для правой стороны?
Использование состояния легче изменить данные узла, но риск несовместим, поскольку он нарушает единый источник правды.
Если я использую реквизиты для верхнего правого компонента, я должен распространять событие перетаскивания на правый компонент, а затем ссылаться на большинство компонентов, а затем изменять данные.