Я хочу передать данные из одного виджета в другой виджет. Я получаю данные из firebase и хочу передать эти данные через виджеты. Как передать данные с одного экрана на другой экран. Вот так выглядит мой код.
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
int _currentindex = 0;
final List<Widget> _children = [
Dashboard(),
Search(),
];
void onTappedBar(int index) {
setState(() {
_currentindex = index;
});
}
@override
Widget build(BuildContext context) {
final user = Provider.of<User>(context);
return StreamBuilder<UserData>(
stream: DatabaseService(uid: user.uid).userData,
builder: (context, snapshot) {
if (snapshot.hasData) {
UserData userData = snapshot.data;
return return Scaffold(
backgroundColor: Color(0xFFf6f5fb),
body: _children[_currentindex],
bottomNavigationBar: CurvedNavigationBar(
onTap: onTappedBar,
index: _currentindex,
items: <Widget>[
Icon(
Icons.home,
),
Icon(
Icons.search,
],
),
);
});
}
}
Из этого виджета данные загружаются из базы данных. Теперь я хочу передать snapshot.data в Dashboard()
виджет и Search()
виджет.
Я хочу показать имя пользователя Dashboard (). Вот как мой `` `Dashboard ()` `Widget для exmaple
class Dashboard extends StatefulWidget {
@override
_DashboardState createState() => _DashboardState();
}
class _DashboardState extends State<Dashboard> {
@override
Widget build(BuildContext context) {
return Center(
child: Text('Here i want display the data')
),
);
}
}
Вот класс модели:
class User {
final String uid;
User({this.uid});
}
class UserData {
final String uid;
final String username;
final String phonenumber;
UserData({ this.uid, this.username, this.phonenumber });
}