flutter - Navigator.push 后上下文丢失

标签 flutter provider navigator

Provider.of<IsSpecialist>(context).value

可在此 Navigator.push 上方访问:

Navigator.push(context, MaterialPageRoute(builder: (c) => ChatScreen()));

但是在 Navigator.push 之后,它在 ChatScreen 中不可用:

Provider.of<IsSpecialist>(context).value

返回

Could not find the correct Provider above this Widget

为什么上下文被破坏?如何保持原有的语境? 我目前的临时解决方案是在 Navigator 之前从 Provider 获取 isSpecialist 并将其作为参数发送到 ChatScreen,但我需要找到更好的解决方案。

最佳答案

Provider 应放置在 widget 树的顶部,位于 MaterialApp 之上

关于flutter - Navigator.push 后上下文丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59317964/

相关文章:

Symfony2 ACL - 无法在单个提供商上设置多个用户源

成员(member)提供者

windows-7 - 有关在 Windows 中创建自定义凭据提供程序的文档

flutter - 在 Flutter 中根据屏幕宽度更改文本大小

flutter - 'ImagePickerCubit' 不符合类型参数 'BlocBase<ImagePickerState>' 的绑定(bind) 'B'

javascript - 调用 POST 请求以从窗口卸载进行日志记录

javascript - Navigator.share() 第二次不起作用

从 Navigator 到 MaterialApp 的 routeSettings flutter

Xcode 不会与 FLUTTER_BUILD_NAME 一起使用

flutter - Flutter-未处理的异常:FormatException:意外字符(在字符1处)回应实例