I need to represent my data in a tree view and use as base the TreeView from svelte.
What I figured out is that if the TreeView data changed, the html will not rerender the tree. The data object is updated but not the html.
I create a new sample based on the original:
Playground
What I currently need to do is to clear the store and with a ms timeout set the new data:
const updateHacky = () => {
writableArray.set([])
setTimeout(() => {
writableArray.set([updateData])
}, 1);
}
but what I expect is that on
writableArray.update(() => [updateData]);
the UI updates.
The problem is with this code in
TreeView.svelte
:The second line is only executed once - when the component is created. This means that when the component receives a new
tree
value,label
andchildren
don't get updated.You can fix it by writing this instead: