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

Flutter如何从其他文件导入const定义的列表并在StatefulWidget中使用

实现方法
  • 第一步:导入依赖文件
    在main.dart的顶部引入Question.dart,路径需匹配你项目内的文件存放位置,若两个文件在同一目录下写法如下:
import 'Question.dart';
  • 第二步:访问quiz列表的id字段
    你当前定义的quiz是List<Map<String, dynamic>>类型,有两种访问方式可选:
    • 方式1:直接访问Map的id属性
      不需要修改Question.dart代码,直接在State类内通过下标+key的方式取值:
    class _Body extends State<Body> {
      @override
      Widget build(BuildContext context) {
        // 示例:取第一个元素的id值
        int firstItemId = quiz[0]['id'];
        // 示例:遍历所有quiz元素的id
        for (var item in quiz) {
          debugPrint('id为:${item['id']}');
        }
        // 此处保留你原有布局代码
        return const SizedBox.shrink();
      }
    }
    
    • 方式2:配合定义的Question类使用(推荐,类型安全)
      先修改Question.dart里的quiz定义,把Map列表改成Question实例列表:
    // Question.dart修改后的quiz代码
    const List<Question> quiz = [
      Question(id: 1, options: 'hello'),
      Question(id: 2, options: 'good'),
      Question(id: 3, options: 'abc'),
    ];
    
    修改后在State类内可以直接通过实体属性访问id:
    int firstItemId = quiz[0].id;
    

注意:如果Question.dart存放在lib的子目录下,需要把导入路径替换成实际路径,比如存放在lib/utils下就写import 'utils/Question.dart';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:36:08