У меня есть потоковое построение на домашнем экране вот так:
Затем у меня есть SilverListDelegate, в котором есть список виджетов
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
final auth = AuthProvider.of(context).auth;
return Scaffold(
body: StreamBuilder<User>(
stream: auth.user,
builder: (context, snapshot) {
if (snapshot.hasData) {
User user = snapshot.data;
return CustomScrollView(
slivers: <Widget>[
SliverList(
delegate: SliverChildListDelegate([
SizedBox(height: 40),
userImageWidget,
userNameWidget,
....,
виджеты определены внутри класса HomeScreenState, например this:
Widget userNameWidget = Text('Show Username',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 28,
fontWeight: FontWeight.bold,
color: Colors.white,
));
Как я могу получить имя пользователя из потока в этом случае?
Я знаю, что если бы я просто поместил код Text
непосредственно в SliverList, я мог бы сказать: Text(user.firstName)
, но это не сработало бы, если я поместил его в виджет выше, поскольку он выбрасывает неопределенное имя: пользователь '.
Спасибо