【发布时间】:2019-10-22 05:33:14
【问题描述】:
我目前正在检查 Flutter Provider 包。我只想向小部件公开一些流,以便我可以收听它们。像这样的:
class OtherBloc {
BehaviorSubject<String> sub = new BehaviorSubject();
OtherBloc() {
sub.add('my value');
}
add(String value) {
sub.add(value);
}
}
然后像这样使用它
class CounterPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final OtherBloc otherBloc = Provider.of<OtherBloc>(context);
return Scaffold(
body: new Container(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
StreamBuilder<Object>(
stream: otherBloc.sub,
builder: (context, snapshot) {
return Text(snapshot.data);
}
),
RaisedButton(
child: Text('____'),
onPressed: () => {
otherBloc.add('lol')
},
)
],
),
),
),
);
}
}
所以我会像这样提供它
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Provider<OtherBloc>.value(
value: OtherBloc(),
child: MaterialApp(home: CounterPage()),
);
}
}
现在我的BehaivorSubject 永远不会是close()。如何调用调度类型的钩子,以便我可以从一个块中关闭我的流?
【问题讨论】:
标签: flutter