有一个问题,我现在坐了几天。有一个应用程序:
根据 AUTH 状态,显示“LoginScreen”或“MainScreen”。
在 MainScreen 中,我使用屏幕(HomeScreen、ShoppingScreen、MyFavorites)设置底部导航
- 我还使用 MultiProvider 在那里设置了我的 StreamProviders(那些依赖于 Auth)
- 当我在 HomeScreen 上使用 Provider.of(context) 时,它的工作原理应该是这样
但是当我使用时:
`Navigator.push( context, MaterialPageRoute( builder: (_) => ProfileScreen(), ), );
` 并在此处使用 Provider.of(context) 我得到“找不到正确的提供者....在此之上...小部件”
我阅读了一些关于这方面的问题,解决方案是在 MaterailApp 上方取消提供程序,在我的情况下我不能这样做,因为我只能在 Auth 成功后设置这些。
尝试将上下文(从 HomeScreen)传递给 ProfileScreen(通过构造函数)并且有效,但是当 UserData 的值更改时,它没有更新屏幕(猜测是因为不同的“上下文”)
我在这里做错了什么,有什么想法吗?:S