问题标签 [hook-widgets]

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 投票
1 回答
218 浏览

flutter - 值更改时 Flutter HookWidget 不会重建

在这里,我使用了非常简单的HookWidgetand Riverpod,当我调用一些方法时,StateNotifierProvider例如increment我希望我useProvider再次使用重建的小部件,例如:

点击按钮后在这里increment工作正常,但_orderProvider不触发屏幕,我尝试同时使用 usingConsumer和 not using Consumer。在任何时候屏幕都无法重建

0 投票
1 回答
99 浏览

flutter - Flutter HookWidget 未知从上下文读取

今天我想知道为什么在将这些代码定义到项目中后我不能context.read在里面使用:HookWidget

my orderStateNotifierProviderandupdateAddress是正确的,因为我在项目中使用了更多它们,但是当我尝试在ListView其中ListView使用时,ValueListenableBuilder我得到了这个错误:

0 投票
0 回答
264 浏览

flutter - Flutter 在不使用 context.read() 的情况下调用 Riverpod 函数

默认情况下,在定义Riverpod提供者后,我们可以单击任何小部件来调用某些方法,例如从 Web 服务或其他东西获取数据。

例如:

现在我的问题是如何getService在不点击任何小部件的情况下调用它?当我尝试使用此代码时:

我收到此错误:

我定义的提供者:

0 投票
1 回答
372 浏览

flutter - Flutter 什么是 StatefulHookWidget 以及我们如何使用它?

引用来自Riverpod文档:

一个可以使用 Hook 的 StatefulWidget

它的用法与 StatefulWidget 非常相似,但在 State.build 中使用了钩子。

不同的是它可以使用 Hook,它允许 HookWidget 存储可变数据而无需实现 State。

除此之外,除了引用之外,我找不到任何示例代码或其他教程或任何描述。

在这个简单的HookWidget我怎么能用它来实现StatefulHookWidget呢?

0 投票
1 回答
574 浏览

flutter - 如何将 HookWidget 与 useTextEditingController 一起使用

我是 Flutter 开发的新手,并试图了解 Riverpod。

我目前设法使以下登录表单与 StatefulWidget 一起使用。基本上,如果两个字段都不为空,则按钮将启用,反之亦然。

在此处输入图像描述

这是它的当前代码。

我不喜欢的是侦听器如何setState直接调用来触发小部件刷新。这是你将如何完成这样的行为吗?

我阅读了有关 Riverpod 的精彩内容,但我似乎没有掌握如何对上述行为进行建模,HookWidget而不是继承自StatefulWidget. 具体来说,如何将侦听器添加到文本编辑控制器。

任何帮助或提示将不胜感激。

0 投票
0 回答
116 浏览

flutter - 使用 Flutter Hooks 从 FocusNode 中移除监听器

我最近开始采用Flutter Hooks并且非常喜欢它。我能够将我的一些 StatefulWidgets 转换为 HookWidgets,这非常酷。我正在努力弄清楚的一件事是如何从由 useFocusNode 创建的FocusNode中正确删除侦听器。

如果我以StatefulWidget的方式执行此操作,它似乎运行良好(基本上遵循Flutter 文档中的这个示例):

但是,我将如何使用 WidgetHook 和 useFocusNode 来做到这一点?我知道如何创建 FocusNode 并添加侦听器,但是我在哪里删除它呢?我应该为此使用useEffect吗?不确定该怎么做。

谢谢!