Flutter: A dismissed Dismissible widget is still part of the tree

Last updated on October 28, 2020 The Frog Loading... 4 comments

This article shows you how to solve a problem when working with the Dismissible widget in Flutter.

Problem

When working with the Dismissible widget in Flutter, you may fall into this error:

A dismissed Dismissible widget is still part of the tree.
Make sure to implement the onDismissed handler and to immediately remove the Dismissible widget from
the application once that handler has fired.

Why does it happen?

The reason is that the value passed to the key property isn’t unique or related to the index of a list. These 2 settings get me in trouble and you should get rid of them:

key: Key(index),
key: ValueKey(index),

After removing an item from a list, the list will shift the positions of the items and the Dismissible widget cannot recognize the removal of an item.

Solution

The solution is quite simple and all you need to do is set the key property to UniqueKey(), like this:

key: UniqueKey(),

That’s it. Hope this helps!

Subscribe
Notify of
guest
4 Comments
Inline Feedbacks
View all comments
Arturo
Arturo
5 days ago

Thank you, but now there is another issue, if I dismiss two items too fast, only one of them disappears, and the other reappears, do you know why it happens?

umair
umair
3 months ago

it was quite helpful thanks a lot

Bright Mukonesi
Bright Mukonesi
5 months ago

I thought i was the only one using the laziness shortcut to create a key. Lol

Albert Eije
Albert Eije
5 months ago

Very good. Thanks a lot!

Related Articles