问题标签 [flutter-hooks]
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.
flutter - 查找已停用小部件的祖先是不安全的 => 使用 Riverpod => 使用 "Navigator.of(context).pushReplacementNamed('/page');"
我所做并导致此错误的场景:1.当我使用热重载按钮时创建登录页面后 2.当我按下登录按钮并且页面状态发生变化时。
最近我决定在我的flutter应用程序中使用riverpod包,所以我使用了hooks_riverpod:^1.0.0-dev.7和flutter_hooks:^0.18.0但是当我在Riverpod和Hooks的帮助下创建我的LoginScreen时,我遇到了一些问题我在下面提供了我的登录信息。
登录屏幕:
AuthStateProviderNotifier:
跑:
这些错误发生在我在 HookConsumerWidget 类中使用 TextField 时。我正在使用 HookConsumerWidget 而不是 StatefullWidget。我也尝试使用 StatefullConsumerWidget,但问题没有解决。(ConsumerStatefulWidget+riverPod)。我的问题是我们如何在 HookConsumerWidget + Riverpod 中使用 Textfield ????
如果你想自己运行它,我在我的 Github 上提供了这个错误的示例代码: smaple_hook_riverpod
flutter - 当我使用 Flutter Hooks 时,Set() 在 Flutter 中不起作用
我想为我知道的编程语言创建一个清单。我使用 Set() 来包含数据。但是当我在 CheckboxListTile() 中使用它时,它并没有选中 UI 中的框。我想使用flutter_hooks来做到这一点。
- 我为 ProgrammingLanguages 创建了一个枚举。
enum ProgrammingLanguages { C, DART, PYTHON, JAVASCRIPT }
- 然后我像这样在无状态的 Widget 类中初始化了集合
final _selectedLanguages = useState<Set>(Set<ProgrammingLanguages>());
- 在构建中,我添加了一个像这样的 CheckBoxListTile。
但在最终的 UI 中,我无法激活该复选框。请帮忙。
flutter - 为什么我看不到 useTextEditingController 值的更新?
我希望效果会在文本更改时记录文本的当前值,但它仅针对初始值运行。为什么?
flutter - useTabController 索引永远不会改变
我正在使用钩子来处理选项卡控制器,问题是当我打印控制器的当前索引时它是正确的。但是当我尝试在文本小部件中显示它时,它永远不会改变!我怎么能用它?
代码是:
flutter - 为什么 Flutter 会使用多个 AnimationController?
我试图创建多个动画。过了一会儿它很慢然后停止。如何使用多个 Widget 制作流畅的动画。我看看是否有任何不必要的重建或有多个侦听器,但没有这样的。如果我要用多个动画控制器制作一个复杂的动画,我做得好吗?我不知道如何做得更好。提前致谢。 https://mario-portfolio-9dc41.firebaseapp.com
这里是文本小部件
flutter - 只有被监视对象的字段发生变化时,是否可以重建 HookConsumerWidget?
所以我花了很长时间试图找到一个我认为是一个相当简单的问题的答案,但我找不到任何关于如何做到这一点的信息:
我有一个 Dog 类:
这个简单的类有一个字段,它用一堆其他字段扩展了一个超类,但我有兴趣在用户添加或删除小部件树中的品种时更新品种集。
由于我使用的是 hooks riverpod,因此我可以通过在 a中使用 aStateNotifier
和 a来让我的应用程序中的其他小部件重新构建良好。ref.watch()
HookConsumerWidget
但是当我有一个像对象这样的UserDog
对象并且当我调用该方法时只有一个字段被更改时,我的问题就出现了SetBreed()
,并且由于状态通知器只会在整个对象引用被更改后重建,这显然不会做任何事情。
HookConsumerWidget
那么,当通知程序中的对象字段而不是整个对象发生更改时,有没有一种方法可以重建?作为参考,这是当前的小部件代码:
提前致谢!
flutter - 使用 Flutter Hooks 从 FocusNode 中移除监听器
我最近开始采用Flutter Hooks并且非常喜欢它。我能够将我的一些 StatefulWidgets 转换为 HookWidgets,这非常酷。我正在努力弄清楚的一件事是如何从由 useFocusNode 创建的FocusNode中正确删除侦听器。
如果我以StatefulWidget的方式执行此操作,它似乎运行良好(基本上遵循Flutter 文档中的这个示例):
但是,我将如何使用 WidgetHook 和 useFocusNode 来做到这一点?我知道如何创建 FocusNode 并添加侦听器,但是我在哪里删除它呢?我应该为此使用useEffect吗?不确定该怎么做。
谢谢!
flutter - 使用useFuture颤振钩子时如何重新加载数据
我正在使用 Flutter 挂钩通过组合 useMemorized 和 useFuture 来获取数据,如下所示:
这个钩子的问题是我无法重新触发 useFuture 以在出现错误的情况下重新获取数据(允许用户点击按钮以再次尝试获取数据)。有什么方法可以让我重新触发 useFuture 钩子吗?
flutter - FLUTTER - 如何正确升级此代码以与 RiverPod 1.0+ 一起使用?
我将库添加到 pubspec.yaml。在当前项目中,我没有使用钩子,而是使用了包,因为我想用它来构建一个骨架启动项目。
pubspec.yaml:
然后我将代码修改为最新的 RiverPod 语法。这涉及将事物更改为 Consumer 小部件并使用 ref 参数。该应用程序现在运行,但只是没有从暗模式切换到亮模式,反之亦然!
主要飞镖:
flutter - 自定义文本字段中的 TextEditingController 行为
我编写了一个自定义文本字段,用于在验证器失去焦点时检查它,其中包含一些 UI,例如错误文本和绿色选中图标。在我需要根据其他 TextField 的数据执行一些自动填充之前,它们工作正常。
当用户填写邮政编码时,将从 ChangeNotifierProvider 视图模型中调用 API 并根据其更新状态
在 HookConsumerWidget 页面中,我将状态传递到自定义文本字段中,如下所示
但是,当状态更改(user.prefectureName、user.city 和 user.address)时,我的自定义文本字段将无法相应地反映更改。这是我的自定义文本字段代码的一部分
我实际上阅读了 useTextEditingController(text: text) 的文档,它不会对文本更改做出反应。我尝试替换useTextEditingController
为TextEditingController
,但它以某种奇怪的行为起作用 - 即使我删除了反射的预填充文本并移动另一个字段,文本也会再次出现;光标表现得很奇怪,当我单击该字段时,它从预填充文本的开头开始。
当我继承 TextField 类并将 TextControllerEditor 直接初始化为 TextField 实例时,它可以完美地工作而没有奇怪的问题。
使用这种方法,我无法获得控制器。我使用组合而不是继承重构自定义文本字段的原因是访问 controller.text 以进行验证 UI。我在这里犯了一些严重的错误或误解了这个概念吗?我无法弄清楚这种奇怪的行为。