You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:54:07