关于flutter类型报错的问题

发布于 2022-09-12 14:02:06 字数 2014 浏览 15 评论 0

以前天天写js,突然切换到dart,真不习惯,下面是报错的代码:

import 'package:flutter/material.dart';
import './ClockWidget.dart';
import './ControlWidget.dart';
import './MusicWidget.dart';
import './TestScrollNotification.dart';

class MyHomePage extends StatefulWidget {
  final String title;
  MyHomePage({this.title});
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int num = 0;

  List<Map<String, dynamic>> pages = [
    {"page": ControlWidget(), "icon": Icon(Icons.settings), "title": "控制台"},
    {"page": ColockWidget(), "icon": Icon(Icons.settings), "title": "时钟列表"},
    {"page": MusickWidget(), "icon": Icon(Icons.settings), "title": "音乐控制"},
    {
      "page": TestScrollNotification(),
      "icon": Icon(Icons.settings),
      "title": "测试页面"
    }
  ];

  void showPage(int n) {
    setState(() {
      num = n;
      print(num);
    });
  }

  List<Widget> renderList(
      int num, List<Map<String, dynamic>> data, Function showPage) {
    List<Widget> list = [];
    for (var i = 0; i < data.length; i++) {
      print(data[i]['icon']);
      list.add(ListTile(
        tileColor: num == i ? Colors.blue : null,
        leading: data[i]['icon'],
        title: Text(data[i]['title']),
        trailing: new Icon(Icons.arrow_forward_ios),
        onTap: () => {showPage(i)},
      ));
    }
    return list;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text("标准时钟系统")),
        body: Row(
          children: [
            Container(
              width: 200,
              child: ListView(children: renderList(num, pages, showPage)),
            ),
            // Expanded(flex: 1, child: pages[num])
          ],
        ));
  }
}

报错信息如图:

image.png

我按字面翻译说是动态List不是 静态List<Map<String, dynamic>> 的子类型 所以不太明白,万望朋友们帮忙解惑,万分感激

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只是在用心讲痛 2022-09-19 14:02:06

没看出问题,具体报错位置是哪儿

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文