问题标签 [inherited-widget]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dart - 访问 InheritedWidget 的上下文
我有以下设置:
然后在我的HomePage
我有一个推动新路线的FAB。这条新路线无法访问我继承的小部件的上下文。
是否不可能获得InheritedWidget
新路线的上下文,或者有没有办法解决这个问题?
更新
这是我的 MaterialApp 的 builder 属性
我的SplashScreen
构建方法:
这些是我得到的错误。
第一个似乎与Drawer
我的有关HomePage
:
当我点击 FAB (Navigator.push) 时出现第二个异常
dart - 你如何在 Flutter 中创建服务/提供者?
假设我需要一个包含所有用户变量和函数的用户服务,以及另一个包含所有项目变量和函数等的项目服务。我希望所有这些数据和函数在整个项目中都可用,将用户数据传递到需要的地方,例如。
我怀疑它与继承的小部件有关,但它是如何工作的?就像,我看到了如何在根级别使用一个继承的小部件,但是我应该在根级别为每个服务构建一堆继承的小部件吗?或者只是将所有数据放在一个顶级继承的小部件中?看起来那样可能会变得混乱。我还没有看到这样的例子。
...还是我应该只使用带有静态变量的类并在需要的地方调用它?
dart - Flutter:在没有上下文的情况下从 InheritedWidgets 访问数据?
我看到我可以在这样的build()
方法中访问 InheritedWidgets:final inheritedWidget = ChronoApp.of(context);
但是如果我想在其他地方访问它怎么办,比如在initState()
没有上下文的地方。我该怎么做?
dart - Flutter:继承的小部件和路由
我想在我的应用程序的根目录有一个继承的小部件,它将包含我的数据提供者,我将在整个应用程序中使用它。所以我有这个继承的小部件,但每次我尝试加载它时,我都会得到这个The getter 'data' was called on null
,我不知道为什么。
所以这是我的 main.dart:
然后我LoginPage
基本上在登录后重定向如下:
在我的Cool
页面中,当单击这样的按钮时,我尝试加载另一个页面:
但是在我CoolDetailsPage
这样做时它会崩溃:
错误详情:
main.dart:56 是return (context.inheritFromWidgetOfExactType(CoolInherit) as CoolInherit).data;
,所以如果我的侦探工作达到标准,我怀疑这与导航/上下文有关,这会阻止我的最终小部件访问继承的小部件,但我不确定。
更新:
我能说的最好的,我需要在更高级别插入我的 InheritedWidget;在导航仪之前。所以我将它插入到 MaterialApp 中:
但这并没有看到工作......
flutter - Flutter Inherited Widget - 缺少一些监听器
我正在尝试使以下工作。应用程序模型状态的更改不会通过 InheritedWidget 'AppStateProvider' 获取。我已经设法让它与接收器/流一起工作,但希望建立一个更简单的结构。
这只是一个在各种应用模式之间切换的测试应用。
少了什么东西?
architecture - Flutter - Scoped BloCs 问题
我有一个 BLoC,只要我将其作为继承的小部件访问,就可以从屏幕内的任何小部件的任何位置访问它。但是,我想显示一个对话框并在其中使用我的模型的相同实例。当我尝试将我的模型作为继承的小部件访问时,我得到一个空错误。看起来这是由于使用新上下文的新屏幕造成的。
有没有办法让我的模型用于子屏幕/对话框而无需在构造函数中显式传递它?
dart - InheritedWidget - 在 navigator.push 之后在 null 上调用 getter
我在导航到新小部件后尝试访问 InheritedWidget 时遇到问题。
我有这样的顶级小部件
然后 WelcomeScreen 有一个按钮可以导航到 LoginScreen
最后在 LoginScreen 我想访问 InheritedWidget
编辑:这里是 LoginBlocProvider
但是,当我运行 InheritedWidget 的 .of 方法时,出现此错误
我的印象是这一切都与 Navigator.push 构建器方法中的上下文有关。因为如果我使用没有 Navigator.push 的 LoginScreen 小部件,我可以完美地使用 InheritedWidget
发生错误是因为传递给LoginBlocProvider.of()
方法的上下文没有找到实例。
对此有什么想法吗?
dart - Flutter:继承的小部件
我想做一个登录应用程序。我有一个类用户,它有一个 id 和一个用户名,我想保留它以便稍后在应用程序中显示它,我有一个 user_api 类,我在其中执行 http 请求。一旦用户登录,我想使用 Singleton 来存储用户,但我发现继承的小部件是一个更好的主意。所以现在我正在为他们苦苦挣扎,因为我无法存储用户对象。登录后,我的用户变为空,我不知道它是如何工作的。这是我的代码:基本上我们有一个根页面来管理用户登录或未登录的情况:
在根页面中:
登录页面最重要的东西::
这是我继承的小部件:
flutter - 如何使用 InheritedWidget 在我的 Flutter 应用程序中随处调用 void 函数
我有一个 main.dart,中间有一个按钮。当用户点击按钮时,它会导航到 home.dart 页面。我的 home.dart 页面在中心也有一个按钮,当用户点击该按钮时,它会导航到详细信息页面。应用程序树和代码如下所示。
我尝试在 home.dart 中实现“InheritedWidget”,所以在 home.dart 之后,我可以使用“InheritedWidget”调用“void _handleUserInteraction”函数。不幸的是,我不断收到错误消息:
home.dart 代码:
details.dart 代码:
更新:我更改了 home.dart 代码。onTap: _callback 正在工作,但在 details.dart 我得到同样的错误说:
错误: -在 null 上调用了 getter 'callback'。
callback - 如何在颤振小部件树内部调用 homepage.dart void 函数?
我不了解范围模型或继承的小部件。但只是在颤振小部件树的深处调用一个函数,我认为继承的小部件是最好的解决方案。我在很多地方都在问这个问题,但似乎我对这个概念很陌生,或者继承的小部件还不成熟。我有如下所示的小部件树;
我想从 help.dart 调用位于 homepage.dart 内的 void _callBack。
如何在颤振小部件树内部调用 homepage.dart void 函数?