flutter - 使用flutter_bloc时清除文本字段
问题描述
我有一个简单的聊天页面,带有一个ChatBloc
和一个ReplyBox
小部件,一个带有发送按钮的消息框。
我希望ReplyBox
是可重用的,所以不要对ChatBloc
. 但是,我希望能够控制ReplyBox
来自集团的文本。事实证明这非常困难,因为文本字段需要使用TextEditingController
.
我试过的:
- 用于将
TextFormField
initialValue
来自 bloc 的文本传递到小部件。当值改变时不重建。 - 使用 强制重建
Key
。文本已更新,但焦点丢失。 - 使用 TextEditingController 使其成为有状态的小部件,不从块中获取文本值,并且仅在按下按钮时清除。这工作正常,但它不灵活。例如,如果存在发送错误,则消息将被清除,这是不应该的。
我还没有尝试在集团中管理 TextEditingController。这似乎不是正确的做法。
解决方案
推荐阅读
- neo4j - 有没有一种简单的方法可以在 Neo4j 中“解包”列表?
- arrays - 复选框二维数组不起作用
- php - 如何在嵌套文件夹中包含 php 文件
- java - Android 应用程序在按下按钮运行线程时崩溃 | 爪哇
- react-native - 如何从反应抽屉顶部删除空间
- oracle-apex - Oracle APEX - 在级联弹出 LOV 中自动选择单个项目
- javascript - 向 inputText 添加一些值时,Primefaces 对话框不断左右移动
- javascript - “!”的目的是什么?在这个 TypeScript 方法调用中?
- flutter - 管理两个 Listview,当用户想要向下滚动查看第二个 listview 项目时,保持第一个显示,Flutter
- jackson - Jackson 因“无法构造 WorkpoolId 的实例(尽管至少存在一个 Creator)而失败:没有 int/Int-argument 构造函数/工厂”