I use the Provider package and Selector.
As far as I understand it allows to control the rebuild more precisely.
I use two nested Selector to build a GridView and