问题标签 [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.

0 投票
0 回答
75 浏览

flutter - InheritedWidget 无法从新路由访问

我正在使用 Bloc 模式构建一个基本的 Flutter 应用程序。到目前为止,这是我的结构。

在此处输入图像描述

MainProvider包含,我可以在每个子页面Repository中传递它(基本上每页一个 Bloc)。Bloc问题是,如果我想这样访问MainProvider

从 MenuPage 或 OtherPage,我通过从 HomePage 导航访问

.of方法返回null

我怎样才能正确访问它InheritedWidget?我应该做另一种类型的Navigator.push吗?

0 投票
1 回答
2078 浏览

flutter - 如何在颤动中访问父级中子小部件的数据?

我想知道父小部件中子(或子的子)小部件中某个字段的值,只有当我想知道它时。
在这种情况下,使用CallbackInheritedWidget/Provider不起作用,因为每次子项中的值发生变化时,它都会为我提供信息。当父母有行动时,我只需要孩子的价值。所以,听所有的变化是一种开销。
另一种选择是使用密钥从孩子那里获取信息,但孩子可以是多个,因此必须创建那么多密钥并以某种方式将它们附加到孩子身上。而且钥匙有点贵。
另一种选择是存储孩子的实例并从中获取价值。

对于一项简单的任务,每个选项似乎都过大了。我赞成关键方法,因为它给人的感觉是它们是为这些类型的场景创建的。有没有人对这种情况有更好的了解?

一个简单的用例是:
想象一个父级在中间有一个 PageView 和一个下一步按钮。中间的页面包含一个更改其值的滑块。当我们按下下一步时,我们想知道滑块的最终值是多少。

0 投票
4 回答
3364 浏览

flutter - 在 initState 中获取 InheritedWidget 参数

我需要一些帮助来了解如何从继承的小部件中获取数据。

我通常使用从我的小部件直接从构建方法获取参数

但是这个方法不能从 initState 调用,因为还没有 buildContext。

我需要在 initState 方法中具有该参数(我在其中调用从服务器获取的数据,并且我需要将该数据传递给我的函数),那么,我该怎么做呢?

我尝试使用 didChangeDipendencies() 但每次重建视图时都会调用它(从屏幕弹出等),所以它不是我想要使用的,也不是 FutureBuilder 小部件。

有什么建议吗?

0 投票
9 回答
12536 浏览

flutter - 如何在 Flutter 的 Dialogs 中访问 Provider 提供者

Provider 包使用InheritedWidget. 当我想在对话框中访问提供者时,这是一个问题。如果我使用加载对话框

我无法访问任何内容,InheritedWidget因为我的对话框不是主小部件树的一部分。这也意味着我无法访问我的 Provider 提供商,对吗?

我的问题是:如果它不是主应用程序小部件树的一部分,我如何在对话框中访问我的提供程序?

我在使用BLoCs. 如果我尝试在对话框中通过 检索它们InheritedWidget,它们会失败。我已经通过BLoC在构造函数中传递来解决这个问题,但这似乎违背了InheritedWidgets.

0 投票
0 回答
30 浏览

flutter - Flutter Inhertied widgets in a widget(stateless of statefull)

在 Flutter 中,我们使用其静态of方法访问继承的小部件字段:

所以,我的问题是,在小部件(无状态或有状态)中,当我们使用这样的东西时:

或者:

这是否意味着小部件继承自MediaQueryModalRoute

谢谢你。

0 投票
2 回答
3441 浏览

flutter - 如何在 Flutter 中从另一个 pageview 类调用另一个函数?

我需要帮助在网页浏览中调用另一个类的方法。我有一个应用程序,它的页面浏览量由两个类组成,分别是 Page 1 和 Page 2。它们都是有状态的小部件。

我试图从 Page1 调用 Page2 的方法,但对我来说很难,因为它们都没有子/父关系,所以我不能使用回调函数。事实上,它们都是另一个父类(MainParent)的子类。我尝试使用 globalkey 但我收到 currentState is null 错误。

非常感谢您的帮助。谢谢!

第 1 页课程

第 2 页类

编辑:编辑我的代码。原来我必须先导航到 page2 选项卡,因为当我在第 1 页时,第 2 页没有安装到屏幕上。所以我添加了一个 pageController 并首先导航到 page2。

0 投票
1 回答
49 浏览

jquery - jquery ui 继承按钮小部件

我正在尝试基于按钮小部件创建一个新小部件,并且想知道如何修改现有 jquery ui 按钮的按钮样式(如果它已经创建),或者如果没有创建新的 jquery 按钮。我将如何检查它是否已经创建,如果它有我如何修改样式?

例如修改现有的 jquery 按钮...我希望能够访问buttonElement

this.buttonElement.removeClass('ui-corner-all');

但它不起作用。

但这适用于现有的 jquery 按钮...

this.element.on('click', function(){...});

我知道我可以使用

_create: function(){ this_super();}

创建一个新按钮,我可以buttonElement轻松访问......但正如我之前所说,如果按钮已经存在,它会创建 2 个 jquery 按钮。像这样...

<span class="ui-button-text"><span class="ui-button-text">Yes</span></span>

当它应该只是<span class="ui-button-text">Yes</span>

我希望我能够解释我想要做什么以及我遇到的问题......对不起,我充其量只是一个休闲程序员。

编辑以添加示例代码:HTML:

JS:

Jquery ui 小部件:

结果:添加了双倍,它具有应用于按钮的双倍样式的效果

我知道我可以简单地添加$('#testcb').button('destroy');,但我希望能够通过检测元素是否已经添加或未添加 ui.button 在小部件中执行此操作。如果它已经创建,我想修改testcb元素。我也知道这buttonElement是 ui.button 创建的可以修改的值,但我无法从我的小部件中“获取”它。

希望这可以解决问题。

0 投票
1 回答
687 浏览

flutter - 带有 InheritedWidget 的子项中的颤振触发动作

我有一个掷骰子MaterialApp。当floatingButton按下时,我想触发孩子们的“掷骰子”。我正在尝试使用 InheritedWidget,但我见过的大多数示例似乎都相反,触发了子级的父级更改。

无国籍父母:

InheritedWidget: _

我正在尝试使用一个Roller类来触发滚动动作:

最后是 Stateful Die:

这似乎应该更简单,但我在这里打结了自己。

编辑:我正在根据建议将 Roller 放在顶层进行更新。我仍然不确定如何触发底部小部件的重建:

然后我把roll方法放到Roller里面:

从 中分配值Roller

最后,调用roll顶层的方法:

这会更新Roller' 的值,但不会更改 _DieState 的值...这是我要解决的问题。那里有很多有趣的模式,但我认为我正在努力解决的是基本实现。

0 投票
0 回答
274 浏览

flutter - 如何在小部件被处理之前保存数据

我正在尝试在处理小部件之前将值保存回 InheritedWidget,

但出现以下错误:

在此处输入图像描述

在小部件被破坏之前,有没有一种节省价值的好方法?

我确实看到错误消息建议在 didChangeDependencies() 期间保留引用,但这就像本地移动的做事方式。"AppInheritedWidget.of(context)"在 build() 期间有一个实例变量而不是颤振的方式来获取,并不理想。

有什么建议吗?

0 投票
2 回答
2510 浏览

performance - 为什么 findAncestorWidgetOfExactType 是 O(N) 而dependOnInheritedWidgetOfExactType 是 O(1)

在 Flutter 中有两个功能:

  • findAncestorWidgetOfExactType
  • 依赖InheritedWidgetOfExactType

他们在文档中说:findAncestorWidgetOfExactType相对昂贵(在树的深度为O(N))。

并且dependOnInheritedWidgetOfExactTypeO(1),具有一个小的常数因子。

任何人都可以解释为什么?为什么第一个比另一个贵?

谢谢