我正在制作一个数据表,用于使用按钮进行筛选.我看了一个教程.
我必须创建一个对象(名为:Kasalar_object
).在我的专栏中,我已经将StreamBuilder
小部件命名为.我创造了我的DataSourceTable
.
在那之后,我用我的DataSourceTable
替换了我的来源,但我必须把我的价值观放在我的对象上.我试着把它放进go ,但我的应用程序显示:
应为‘Map<;字符串,动态>;’类型的值,但获得的类型为‘()=>;映射<;字符串,动态>;’
流媒体没有错误.因为当我试图在没有对象的情况下使用它时.它起作用了.以下是我的代码:
我的目标是:
class Kasalar_object {
final String kasa_adi;
final String doviz_cinsi;
final String acilis_bakiyesi;
final String olusturulma_tarihi;
final String aktivite;
Kasalar_object( {required this.kasa_adi , required this.doviz_cinsi, required this.acilis_bakiyesi, required this.olusturulma_tarihi, required this.aktivite});
// Map<String, dynamic>
factory Kasalar_object.fromMap( Map<String, dynamic> kasalar_objectim ) {
return Kasalar_object(
kasa_adi: kasalar_objectim['kasa_adi'],
doviz_cinsi: kasalar_objectim['doviz_cinsi'],
acilis_bakiyesi: kasalar_objectim['acilis_bakiyesi'],
olusturulma_tarihi: kasalar_objectim['olusturulma_tarihi'],
aktivite: kasalar_objectim['aktivite'], ); // );
}
StreamBuilder(
stream: firestore.collection("Users").doc(FirebaseAuth.instance.currentUser?.email).collection("kasalar").snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snap) {
List<Kasalar_object> kasalarim = [];
kasalarim = snap.data!.docs.map((e) => Kasalar_object.fromMap(e.data() as Map<String, dynamic> )).toList();
final DataTableSource _all_kasa = MyKasaData(kasalarim);
List<dynamic> map = snap.data!.docs;
if(snap.hasData ){
return PaginatedDataTable(
columns: [
DataColumn(label: Text('Kasa Adi'),),
DataColumn(label: Text('Para Birimi')),
DataColumn(label: Text('Açılıs Bakiyesi')),
DataColumn(label: Text('Oluşturulma Tarihi')),
DataColumn(label: Text('Aktif/Pasif')),
DataColumn(label: Text('İslemler')),
],
source: _all_kasa,
columnSpacing: witdh/15,
);
}
else{
return Center(child: CircularProgressIndicator()); // new Text('No data...');
}
}),
我的dataSourceTable:
class MyKasaData extends DataTableSource {
SideBarController sideBarController = Get.put(SideBarController());
// List<Kasalar> kasalar = [];
MyKasaData(this._data);
final List<dynamic> _data;
DataRow getRow(int index) {
return DataRow(cells: [
DataCell(Text(_data[index].data()['kasa_adi'])),
DataCell(Text(_data[index].data()['doviz_cinsi'])),
DataCell(Text(_data[index].data()['acilis_bakiyesi'])),
DataCell(Text(_data[index].data()['olusturulma_tarihi'])),
DataCell(Text(_data[index].data()['aktivite'])), }
以下是错误消息的图像:
如果我将数据更改为data(),则结果如下:
我怎么才能修好它呢?