flutter - 如何构建依赖于文本字段值的小部件?
问题描述
我想在列中添加一个 Text 小部件,该值应该是用户输入的 TextFormField 的输入值。
代码
String text;
Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.fromLTRB(30, 10, 30, 10),
child: TextFormField(
onFieldSubmitted: (value) {
text= value;
},
),
Text(text), // want to add text here
]
它抛出一个错误:
必须向 Text 小部件提供非空字符串。
应该是什么好方法呢?
解决方案
第一个使可空文本像 String? text;
根据 statefullWidget 中的提交进行更改。
onFieldSubmitted: (value) {
setState(() {
text = value;
});
},
其次,您需要处理空值,例如
if (text != null) Text(text!),
或喜欢Text(text ?? "defaul value"),
小部件会像
String? text;
@override
Widget build(BuildContext context) {
return Column(children: <Widget>[
Padding(
padding: const EdgeInsets.fromLTRB(30, 10, 30, 10),
child: TextFormField(
onFieldSubmitted: (value) {
setState(() {
text = value;
});
},
),
),
if (text != null) Text(text!), // want to add text here
]);
}
它在你的情况下解决了吗?
推荐阅读
- r - 如何在 dplyr 过滤器行中使用 For-Loop 在特定召回表上创建精度?
- laravel - Nuxt.js + Laravel 在同一台服务器 nginx 上
- javascript - 如何从拼接层的微前端重用定义的 Web 组件?
- merge - VHDL - 如何将两个代码合并在一起?
- python - 选择用于圆锥数据分布的神经网络层中的单元数
- visual-studio - C# 项目不会在引用的库中获取最新的 F# 类型声明
- visual-studio-code - 在 Visual Studio 代码中如何保存到 ram/硬盘驱动器?
- javascript - bootstrap href,引用图片URL,不做重定向
- graphql - 具有随机键名的 Graphql 对象
- android - 将 Firestore 与 Android 架构组件一起使用时出错