【发布时间】:2021-10-15 11:09:10
【问题描述】:
我有这样的问题: 在 Splash Page 中,我签入 sharedpreference 以在登录成功时获取保存的令牌。如果我有令牌,我请求 Api 获取帐户信息并像这样移动到下一页:
Future check() async {
String _getToken = await splashBloc.getTokenFormSharedPref();
if (_getToken=='0') {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => LoginMain()));
} else {
splashBloc.getAccountInfo();
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => HomeScreenMain()));
}
}
这是 BLoC 类:
class SplashBloc extends BlocBase{
String _getToken = '';
Future<String> getTokenFormSharedPref() async{
SharedPreferences prefs = await SharedPreferences.getInstance();
_getToken = (prefs.getString('token') ?? '0');
return _getToken;
}
final accountInfoController = new StreamController<Account>();
Sink<Account> get accountInfoSink => accountInfoController.sink;
Stream<Account> get accountInfoStream => accountInfoController.stream;
Future getAccountInfo() async{
Account account = await NetworkService().getAccountInfo2(_getToken);
accountInfoSink.add(account);
print('from splash: '+account.fullName);
}
@override
void dispose() {
accountInfoController.close();
}
}
当我检查日志时,它完全请求成功,问题是我如何访问下一页 HomeScreenMain() 的流构建器中的数据? 感谢您的帮助!
【问题讨论】:
标签: flutter dart bloc stream-builder