GOOGLE ADS

Mittwoch, 20. April 2022

Der Typ „List<dynamisch>“ ist kein Untertyp des Typs „List<Widget>“.

Ich habe ein Code-Snippet, das ich aus dem Firestore-Beispiel kopiert habe:

Widget _buildBody(BuildContext context) {
return new StreamBuilder(
stream: _getEventStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
return new ListView(
children: snapshot.data.documents.map((document) {
return new ListTile(
title: new Text(document['name']),
subtitle: new Text("Class"),
);
}).toList(),
);
},
);
}

Aber ich bekomme diesen Fehler

type 'List<dynamic>' is not a subtype of type 'List<Widget>'

Was läuft hier schief?


Lösung des Problems

Das Problem hierbei ist, dass der Typrückschluss auf unerwartete Weise fehlschlägt. Die Lösung besteht darin, der Methode ein Typargument bereitzustellen map.

snapshot.data.documents.map<Widget>((document) {
return new ListTile(
title: new Text(document['name']),
subtitle: new Text("Class"),
);
}).toList()

Die kompliziertere Antwort ist, dass diese Informationen nicht zum Aufruf zurückfließen, obwohl der Typ von childrenist. Dies kann daran liegen, dass folgt und dass es keine Möglichkeit gibt, die Rückgabe eines Abschlusses mit Anmerkungen zu versehen.List<Widget>mapmaptoList

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...