I want to be able to use .autoDispose on all my providers, and keep them alive as long as the page remains open.
However autoDispose appears to be triggered when the page rebuilds, rather than when it is fully disposed.
As a result, a page build method rebuild initiated by a provider also causes all the other providers in the page to reinstantiate.
This is a big problem, as these other providers then also loose their 'ref' - it becomes invalid.
e.g.
final homeListStream = StreamProvider.autoDispose<List<DisplayItem>>((ref)...
Widget build(BuildContext context, WidgetRef ref) {
final state = ref.watch(homeState);
ref.watch(homeListStream)...
When homeState changes causing the page to rebuild, homeList is completely reinstantiated and looses its 'ref', also causing the stream to return chaotic results.