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