问题标签 [statefulwidget]
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 - 为什么在 StatefulWidget 中没有定义 build 方法?
我目前正在学习 Flutter。我试图深入研究 Flutter Widget 的生命周期,我想知道为什么StatefulWidget
会这样写:
但不是 :
我认为后者使来源变得简单。但我不知道他们为什么使用前一种风格?
android - 作为类的状态是否需要 SatefulWidget?
我正在尝试学习颤振中的 bloc 模式并使用bloc
框架创建一个示例应用程序。该应用程序是一个计数器,在计数器文本字段下方有两个按钮。在单击True
和False
按钮时,当前 Ii 只是分别递增和递减计数器。
我注意到的是,如果我在实现Bloc
模式时使用类作为状态,那么我必须编写StatefulWidget
. 相反,如果我int
只使用那么即使使用也StatelessWidget
可以正常工作。
因此,在实现相同的示例时,它让我感到困惑,使用类作为状态,原始数据类型作为状态。
这是我的代码CounterBloc
代码,状态定义为类CounterState
我CounterState
的定义如下
这就是我在按下按钮时调度事件的方式
与内部的 UI 绑定StatefulWidget
现在,如果我使用int
as 状态,那么它在StatelessWidget
.
这是CounterBloc
带有状态的整数
更新
在@Rémi Rousselet 的评论的帮助下解决了这个问题。现在我每次都在通过新的状态
flutter - Flutter,不一致的小部件构建
所以我有一个像这样的表单屏幕(带有自己的脚手架):
我有这样的根小部件:
什么时候按计划工作?
当我设置
home: InputForm()
,
即使我单击任意位置并且 UI 发生变化(下拉或单击输入字段)
只调用一次。
但是当我设置
然后单击 DashboardWidget 上的按钮,我通过以下方式导航到:
然后当我单击 InputForm 屏幕中更改小部件的某个位置时(例如扩展下拉列表、输入字段)
每次在导致布局更改的此类点击中都会被调用。
这是正常行为吗?
如果是这样,存储 InputFromWidget 状态以避免从头开始重新创建它的最佳方法是什么?
forms - 如何从另一个 dart 文件中调用有状态小部件(有表单)方法?- Flutter
我在有状态小部件中有一个表单,在我的有状态小部件中,我使用提交方法验证了我的表单。
在我的应用程序中,我在另一个 dart 文件的另一个页面中显示该表单。
我的表单在新页面和 appbar 操作中可见,我正在调用提交方法,但我不知道如何在新的 dart 文件中调用该提交方法。
flutter - 如何创建抽屉的有状态小部件,其列表项 onClick 将更改同一屏幕的内容?
我想创建一个 ItemsDrawer Stateful Widget,ListTile 应该改变 Item 屏幕的内容,但它没有改变。另外,如何使用 List.builder 创建 ListTile 列表?
创建方法 itemDrawer() 有效,但现在我想将对象传递到抽屉中。
items 是类 Item 的列表。
我想创建的不是方法 itemDrawer(context):
在 widget.item 上说:'item' 不能用作设置器,因为它是最终的
更新:显示内容的 ItemScreen:
flutter - 我正在构建一个颤振应用程序,我的代码运行良好,直到我被这个名为“由小部件库引起的异常”的异常抛出
当我运行我的应用程序时,它可能会出现一个红色的屏幕打印无效参数。我认为问题出在我的代码上,请指出是否有问题或者这是其他问题。
我试过运行颤振医生,颤振干净。但没有帮助
flutter - 如何从给定的代码创建自定义抽屉状态小部件?
我已经根据现有问题的现有解决方案解决了上一个问题。
我想在单击 onTap 时更改作为 ListView 子项的 CustomListTile 的颜色,并将其他子项颜色设置为默认颜色?
在为抽屉创建有状态小部件时,我仍然面临问题。
这是项目的 Github 链接:https ://github.com/Aaklii/flutter_app
我想在稍后阶段为抽屉项目提供更多功能,所以我想创建一个有状态的小部件,但这段代码不起作用:
所以我目前正在使用 buildDrawer()
flutter - 如果 Flutter 中的有状态小部件可以实现同样的功能,为什么我们还需要无状态小部件?
我是 Flutter 领域的新手,我最近了解了(或者我认为我做到了)有状态和无状态小部件,这是 Flutter 小部件的基础。
我们将无状态小部件用于未在显示屏上重绘的内容(如文本、按钮等),但有状态小部件可以自行重绘。
所以我的问题是,如果有状态小部件可以用来绘制与无状态小部件相同的小部件,为什么我们需要无状态小部件?
或者是否有任何特定的理由在颤振中使用无状态而不是有状态的小部件?或者我们可以一直使用有状态的小部件而不是只能绘制一次内容的无状态小部件吗?
谢谢,如果这是一个愚蠢的问题,我很抱歉。
编辑
那么问题不在于无状态和有状态之间的区别。我知道区别,但是只使用有状态小部件有什么影响,因为通过使用它,我们还可以实现无状态小部件可以做的大部分事情,那么为什么我们需要无状态小部件?它在颤振环境中的重要性是什么?的应用程序将不时重新绘制?
flutter - StatefulWidget 中的 setState() 无法正常工作
我想做的是,在RawMaterialButton
单击按钮时更改 a 的颜色。阅读一下StatefulWidget
,它似乎应该工作,但由于某种原因它没有。
flutter: Another exception was thrown: setState() called in constructor: ButtonTest#1a93b(lifecycle state: created, no widget, not mounted)
按钮测试类:
密码类:
获取密码()
主类:
我在这里做错了什么?