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

使用Flutter和Dart时,页面跳转后String变量为何仅保留最后一个值?

解决Flutter中页面跳转后日期变量仅保留最后一个值的问题

问题根源

你当前在appController中定义的mydate是单个字符串变量,每次赋值操作都会覆盖之前存储的内容,因此跳转至第二个页面时只能获取最后一次赋值的日期。

解决方案

将单个变量改为列表类型,用于存储所有日期值:

  1. 修改Controller中的变量定义
    在appController里把单个字符串变量替换为字符串列表:

    // 替换原来的 String mydate;
    List<String> myDates = [];
    
  2. 第一个页面中添加日期到列表
    不再直接赋值,而是将格式化后的日期添加到列表中,同时避免重复解析DateTime以提升效率:

    // 解析并格式化日期
    DateTime localDateTime = DateTime.parse(info.timestamp).toLocal();
    String formattedDate = "${localDateTime.year}-${localDateTime.month.toString().padLeft(2, '0')}-${localDateTime.day.toString().padLeft(2, '0')} ${localDateTime.hour.toString().padLeft(2, '0')}:${localDateTime.minute.toString().padLeft(2, '0')}";
    
    // 添加到列表
    appController.myDates.add(formattedDate);
    
    // 打印所有日期
    print(appController.myDates);
    

    此时控制台会输出所有已添加的日期列表。

  3. 第二个页面中获取所有日期
    直接打印整个列表即可获取所有日期值:

    print(widget.appController.myDates);
    

内容的提问来源于stack exchange,提问作者Bill Tertis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:54:18