使用 Flutter 里的 StreamBuilder,可以根据 Stream 上的数据构建小部件 .. Stream 上的数据有变化会重建构建小部件 .. 不需要手工使用 setState 方法了 ..
注释掉之前添加的这个 Text 小部件 .. 这里用一个 StreamBuilder ... 它里面需要一个 stream 属性,设置一下要使用的 stream ,这里我们可以用一下 _streamDemo 这个 Stream 控制器控制的 stream ..
它还需要一个 builder 方法,用它来构建小部件 .. 方法有个 context 参数 .. 还有一个 snapshot .. 方法 return 的是一个 Text 小部件 .. 小部件上要显示的文字可以用一下 snapshot 里面的 data 这个属性 .. 它表示的就是在 stream 属性里面指定的 stream 的上面出现的数据 ..
现在你会发现界面上显示的这个用 StreamBuilder 构建的小部件,显示的是 Null,因为一开始 Stream 上还没有数据 .. 这里我们可以设置一个初始的值 .. 添加一个 initialData .. 先让它等于三个点 .. 执行一下 hot restart ...
回到模拟器 .. 按一下 Add 按钮 .. 会往 Stream 上添加数据 .. 这个 Stream 上有了数据以后, StreamBuilder 会根据它的值去构建一个小部件 .. 所以你会发现,界面上会显示一个 hello ~ ..