Flutter'da oluşan "There are multiple heroes that share the same tag within a subtree." hatası nasıl düzeltilir?
27.07.2020 23:23
#HATA #FLUTTER #THERE ARE MULTİPLE HEROES THAT SHARE THE SAME TAG WİTHİN A SUBTREE.
Flutter'da oluşan "There are multiple heroes that share the same tag within a subtree." hatası nasıl düzeltilir?
Flutter üzerinde bir Column içerisine koyduğum üç adet FloatingActionButton'dan sonra oluşan "There are multiple heroes that share the same tag within a subtree." hatasının çözüm yöntemini buldum.
Hatayı çözmeden önce hata ekranındaki görünüm şu şekildeydi.
The following assertion was thrown during a scheduler callback:
There are multiple heroes that share the same tag within a subtree.
Within each subtree for which heroes are to be animated (i.e. a PageRoute subtree), each Hero must have a unique non-null tag.
In this case, multiple heroes had the following tag: <default FloatingActionButton tag>
Here is the subtree for one of the offending heroes: Hero
tag: <default FloatingActionButton tag>
state: _HeroState#ad45e
When the exception was thrown, this was the stack:
#0 Hero._allHeroesFor.inviteHero.<anonymous closure> (package:flutter/src/widgets/heroes.dart:266:11)
#1 Hero._allHeroesFor.inviteHero (package:flutter/src/widgets/heroes.dart:277:8)
#2 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:296:21)
#3 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5817:14)
#4 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:309:15)
Yani demek istediği şey özetle şu şekilde.
Arkadaşım sen buraya üç tane FloatingActionButton koymuşsun. İyi, güzel de etmişsin. Ama bunları birbirinden ayırt edebilmem için bana bunların kim olduğunu anlayacağım bir isim vermelisin.
Bu yüzden de "There are multiple heroes that share the same tag within a subtree." hatasını çözmek için, FloatingActionButton'lar içerisine heroTag="fab1" gibi bir isimlendirme yapmamız gerekmektedir.