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实例列表:
修改后在State类内可以直接通过实体属性访问id:// Question.dart修改后的quiz代码 const List<Question> quiz = [ Question(id: 1, options: 'hello'), Question(id: 2, options: 'good'), Question(id: 3, options: 'abc'), ];int firstItemId = quiz[0].id; - 方式1:直接访问Map的id属性
注意:如果Question.dart存放在lib的子目录下,需要把导入路径替换成实际路径,比如存放在lib/utils下就写import 'utils/Question.dart';
内容的提问来源于stack exchange,提问作者jiji
相关产品推荐
相关产品推荐

