Я новый пользователь во флаттере, я выбираю значение из FireStore (majname), и у меня есть две вкладки в одном файле, я хочу передать значение на две вкладки.
Я искал и не нашел способа сделать это, можете ли вы помочь мне и объяснить мне, как я это сделаю?
Я искал и не нашел способа сделать это, кто-нибудь может мне помочь и объяснить мне, как я это сделаю?
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:gradient_app_bar/gradient_app_bar.dart';
class Files extends StatefulWidget {
@override
_FilesState createState() => _FilesState();
}
class _FilesState extends State<Files> {
var my_uid;
var majname;
@override
void initState() {
super.initState();
FirebaseAuth.instance.currentUser().then((user) {
setState(() {
my_uid = user.uid;
print(user.uid);
});
Firestore.instance
.collection('users')
.where('uid', isEqualTo: my_uid.toString())
.getDocuments()
.then((docs) {
Firestore.instance
.document('/users/${docs.documents[0].documentID}')
.get()
.then((val) {
setState(() {
majname = val.data['majname'];
});
}).catchError((e) {
print(e);
});
});
}).catchError((e) {
print(e);
});
}
@override
Widget build(BuildContext context) {
return new DefaultTabController(
length: 3,
child: Scaffold(
appBar: GradientAppBar(
automaticallyImplyLeading: true,
backgroundColorStart: Colors.deepPurple,
backgroundColorEnd: Colors.purple,
title: Text(
'Files Manager',
style: TextStyle(fontWeight: FontWeight.bold),
),
bottom: TabBar(
isScrollable: true,
tabs: <Widget>[
Tab(
icon: new Icon(Icons.person_pin),
text: "My Files",
),
Tab(
icon: new Icon(Icons.school),
text: "Major Files",
),
],
),
),
body: TabBarView(
children: <Widget>[
MyFiles(),
MajFiles(),
],
),
),
);
}
}
// My
class MyFiles extends StatefulWidget {
@override
_MyFilesState createState() {
return _MyFilesState();
}
}
class _MyFilesState extends State<MyFiles> {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Center(
child: Text('My'),
),
],
);
}
}
// Maj
class MajFiles extends StatefulWidget {
@override
_MajFilesState createState() {
return _MajFilesState();
}
}
class _MajFilesState extends State<MajFiles> {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Center(
child: Text('Maj'),
),
],
);
}
}