把下面的dart传输不是一个字一个字展示而是有新文字插入到新文字后面import dartasync;import dartconvert;import darttyped_data;import packagefluttermaterialdart;import packagediodiodart;class StreamPage extends StatefulWidget overrid
import 'dart:async'; import 'dart:convert'; import 'dart:typed_data';
import 'package:flutter/material.dart'; import 'package:dio/dio.dart';
class StreamPage extends StatefulWidget { @override _StreamPageState createState() => _StreamPageState(); }
class _StreamPageState extends State
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Stream Example'), leading: IconButton( icon: Icon(Icons.arrow_back), onPressed: () { _getData(); }, )), body: StreamBuilder( stream: _streamController.stream, builder: (context, snapshot) { if (snapshot.hasData) { return Center( child: Text(snapshot.data!), ); } else { return Center( child: Text('Waiting for data...'), ); } }, ), ); }
@override void initState() { super.initState(); _getData(); }
@override void dispose() { _streamController.close(); super.dispose(); }
void _getData() async { Response response = await Dio().post( 'http://127.0.0.1:5000/test', options: Options( responseType: ResponseType.stream, ), ); print(response.data);
response.data.stream
.transform(StreamTransformer<Uint8List, String>.fromHandlers(
handleData: (data, sink) {
sink.add(utf8.decode(data));
},
)).listen((data) {
_streamController.add(data);
});
}
原文地址: http://www.cveoy.top/t/topic/fesk 著作权归作者所有。请勿转载和采集!