Android 映射流内容时如何处理未处理的异常?
我试图映射流内容,但最终得到未处理的异常:类型“\u MapStream”不是“stream”错误的“stream”类型的子类型 下面是我正在尝试运行的代码Android 映射流内容时如何处理未处理的异常?,android,flutter,dart,stream,Android,Flutter,Dart,Stream,我试图映射流内容,但最终得到未处理的异常:类型“\u MapStream”不是“stream”错误的“stream”类型的子类型 下面是我正在尝试运行的代码 class Cricket { final String comment; Cricket.fromJsonMap(Map map) : comment = map['comment']; } class _RedditFlutterState extends State<RedditFl
class Cricket {
final String comment;
Cricket.fromJsonMap(Map map) : comment = map['comment'];
}
class _RedditFlutterState extends State<RedditFlutter> {
var comments;
ScrollController _scrollController =
new ScrollController(initialScrollOffset: 50.0);
StreamController<Cricket> streamController;
List<Cricket> list = [];
var msg = '';
Future<void> redditmain(StreamController sc) async {
// Create the `Reddit` instance and authenticated
Reddit reddit = await Reddit.createScriptInstance(
clientId: 'clientid',
clientSecret: 'clientsecret',
userAgent: 'useragent',
username: 'username',
password: 'password', // Fake
);
comments = reddit.subreddit('cricket');
// .stream.comments();
comments.stream
.comments()
.map((map) => Cricket.fromJsonMap(map))
.pipe(streamController);
// comments.listen((event) => print(event.body));
}
@override
void dispose() {
super.dispose();
streamController?.close();
streamController = null;
}
@override
void initState() {
// TODO: implement initState
// redditmain();
super.initState();
streamController = StreamController.broadcast();
streamController.stream.listen((p) => setState(() => list.add(p)));
redditmain(streamController);
}
List item = [];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Reddit"),
centerTitle: true,
),
body: Center(
child: StreamBuilder(
// stream: list,
builder: (context, snap) {
if (snap.hasData && !snap.hasError && snap.data != null) {
print(snap.data.body);
return Container(
child: ListView.builder(
controller: _scrollController,
itemCount: list.length,
itemBuilder: (context, index) {
return Card(
child: ListTile(
leading: Image.asset('assets/criclogo.png'),
title: Text(list[index].comment),
trailing: Icon(Icons.more_vert),
),
);
},
),
);
} else
return Text("No data");
},
),
),
);
}
}
投掷
[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: type '_MapStream<Comment, dynamic>' is not a subtype of type 'Stream<Cricket>' of 'stream'
[错误:flatter/lib/ui/ui\u dart\u state.cc(186)]未处理的异常:类型“\u MapStream”不是“Stream”的类型“Stream”的子类型
我做错了什么?有人能给我指出正确的方向吗
[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: type '_MapStream<Comment, dynamic>' is not a subtype of type 'Stream<Cricket>' of 'stream'