Flutter中setState内如何修改变量值 选中日期同步更新自定义输入框提示
问题原因
你的赋值逻辑方向写反了,当前代码是把原有的_selectedDate值赋值给临时变量_pickerDate,并没有修改控制界面展示的状态变量_selectedDate,所以界面不会更新。
解决方法
把_getDateFromUser方法里的赋值逻辑调换顺序即可,修正后的代码如下:
if (_pickerDate != null) { setState(() { // 将用户选择的新日期赋值给状态变量 _selectedDate = _pickerDate; }); } else { print("It's null something wrong"); }
补充说明
- 当你调用
setState后,页面的build方法会重新执行,MyInputField的hint属性绑定的DateFormat.yMd().format(_selectedDate)会自动读取更新后的_selectedDate值,界面的提示文本就会同步刷新。 - 如果运行时报
DateFormat未定义的错误,需要在pubspec.yaml中添加intl依赖并导入对应包:import 'package:intl/intl.dart';
内容的提问来源于stack exchange,提问作者Muhammad Bayu Kurniawan
相关产品推荐
相关产品推荐

