该“ stream:”部分应传递什么?

时间:2019-08-31 19:21:23

标签: flutter dart provider

1 个答案:

答案 0 :(得分:0)

您之前创建的Stream函数。

有效的示例代码(在这种情况下为UsingStreamBuilder

import 'dart:async';

import 'package:flutter/material.dart';

class UsingStreamBuilder extends StatelessWidget {
  Stream<int> timedCounter(Duration interval, [int maxCount]) async* {
    int i = 0;
    while (true) {
      await Future.delayed(interval);
      yield i++;
      if (i == maxCount) break;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("StreamBuilder in Flutter")),
      body: Center(
        child: StreamBuilder<int>(
          stream: timedCounter(Duration(seconds: 2), 10),
          //print an integer every 2secs, 10 times
          builder: (context, snapshot) {
            if (!snapshot.hasData) {
              return Text("No data");
            }
            return Text("${snapshot.data.toString()}",
                style: TextStyle(fontSize: 20));
          },
        ),
      ),
    );
  }
}