【发布时间】:2021-04-03 13:56:41
【问题描述】:
我有这样的文本表单:如果我没有为第二个文本表单定义键盘类型,那么当我从第一个字段转到第二个字段时没有问题,我不会丢失第一个字段的输入。但是如果我在我的代码中定义了键盘类型,当我点击第二个字段时它会丢失第一个字段的数据。
注意:我使用 Riverpod 作为状态管理。
class NewTx extends StatelessWidget {
final TextEditingController titleController = TextEditingController(text: '');
final TextEditingController priceController = TextEditingController(text: '');
@override
Widget build(BuildContext context) {
return Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
TextFormField(
controller: titleController,
decoration: InputDecoration(hintText: 'Title')
),
TextFormField(
keyboardType: TextInputType.number,
controller: priceController,
decoration: InputDecoration(hintText: 'Title')),
Container(
alignment: AlignmentDirectional.bottomEnd,
child: IconButton(
icon: Icon(Icons.add),
onPressed: () => context.read(transactionProvider).addTx(
Transaction(titleController.text, priceController.text))))
]);
}
}
编辑:riverpod_hooks 和 useTextEditingController 运行良好。(除了有状态小部件的另一种解决方案。)
【问题讨论】:
标签: flutter dart mobile riverpod