首页 > 解决方案 > 颤振类型'列表' 不是类型 'List 的子类型'

问题描述

我有这个小部件

StreamBuilder(
        stream:
            FirebaseFirestore.instance.collection('HouseDetails').snapshots(),
        builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
          if (!snapshot.hasData) {
            return Center(
              child: CircularProgressIndicator(),
            );
          }
          return Expanded(
            child: ListView(
              children: snapshot.data.docs.map<Widget>((document) {
                return _buildHouse(context, document);
              }).toList(),
              physics: BouncingScrollPhysics(),
            ),
          );
        });

现在_buildHouse构建一个具有 onTap 功能的基本屏幕。我正在QueryDocumentSnapshot document使用MaterialPageRoute.

 onTap: () {
        Navigator.push(
          context,
          MaterialPageRoute(
            builder: (_) => DetailsScreen(house: document),
          ),
        );
      },

该行 builder: (_) => DetailsScreen(house: document),抛出错误

The following _TypeError was thrown building DetailsScreen(dirty, state: _DetailsScreenState#cc47a):
I/flutter ( 5479): type 'List<dynamic>' is not a subtype of type 'List<String>'
I/flutter ( 5479): The relevant error-causing widget was:
 I/flutter ( 5479):   DetailsScreen

这里出了什么问题?

标签: flutter

解决方案


我只需要.map<String>((e)=>e.toString()).toList()在 DetailsS​​creen 类中使用类型的变量List<String>


推荐阅读