ipytree icon indicating copy to clipboard operation
ipytree copied to clipboard

Errors and missing items in highly nested tree

Open hschilling opened this issue 4 years ago • 1 comments

When I try this code

tree = Tree(stripes=True, multiple_selection=False)
subtree = Node(f'subtree')
subtree.opened = False
tree.add_node(subtree)
for i in range(15):
    node = Node(f'node{i}')
    subtree.add_node(node)
    for j in range(15):
        subnode = Node(f'node{j}')
        node.add_node(subnode)
        for k in range(15):
            subsubnode = Node(f'node{k}')
            subnode.add_node(subsubnode)

I see a few errors in the browser console of this type

Comm promise not found for comm id f8eeb9730a294ab8a26ecdae8ed77a9c

When I try displaying it with

tree

I get quite a few errors like this in the console:

Uncaught (in promise) TypeError: t is undefined
    create_view manager-base.js:85
    create_child_view widget.js:604
    addNodeModel tree.js:166
    update viewlist.js:54
    onRendered tree.js:142
    t Lodash
    create_node jstree.js:3928
    renderNode tree.js:56
    initialize tree.js:51

and the actual tree display is missing the + and - open/close widgets.

If I have only 5 nodes at each level, then I don't get any errors.

I also tried this with 15 at each level but put in a time.sleep(0.2) in the innermost loop to see if it was a timing issue and then I did not get any errors and the display was perfect.

I have a real world tree with more levels of depth that is why I ran into this. I have inserted sleep statements in that and I can't get it to work at all there.

Thanks

hschilling avatar Nov 05 '21 14:11 hschilling

I'm experiencing the same error with the reproducer above and with my own real-world tree. I would love to help debug this if possible. @martinRenou do you have any tips on how to dig in on this one?

jhamman avatar May 10 '23 22:05 jhamman