如果有人有解决方案,请帮助我。我无法将我的 objectbox 数据库连接到文本字段数据单元格。在警报对话框中输入我的数据条目后,它不会显示在我现有的任何数据单元格下。我还附有一个 objectbox.g.dart 文件,如果需要,我可以提供该文件。
actions: [
IconButton(
icon: Icon(Icons.add_box_outlined),
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('New Activity'),
content: TextField(
autofocus: true,
decoration: InputDecoration(hintText: 'Enter in your activity'),
controller: controller,
),
actions: [
TextButton(
child: Text('SUBMIT'),
onPressed: submit,
)
],
);
body: !hasBeenInitialized
? Center(
child: CircularProgressIndicator(),
)
: StreamBuilder<List<ShopOrder>>(
stream: _stream,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
} else {
return OrderDataTable(
orders: snapshot.data!,
onSort: (columnIndex, ascending) {
final newQueryBuilder = _store.box<ShopOrder>().query();
final sortField = columnIndex == 0 ? ShopOrder_.id : ShopOrder_.price;
newQueryBuilder.order(
sortField,
flags: ascending ? 0 : Order.descending,
);
setState(() {
_stream = newQueryBuilder
.watch(triggerImmediately: true)
.map((query) => query.find());
});
},
store: _store,
);
}
},
),
);
}
void submit() {
Navigator.of(this.context).pop(controller.text);
}
}
return DataRow(
cells: [
DataCell(
Text(order.id.toString()),
),
DataCell(
Text(order.activity.target?.name ?? 'NONE'),
onTap: () {
showModalBottomSheet(
context: context,
builder: (context) {
return Material(
child: ListView(
children: order.activity.target!.activities
.map(
(_) => ListTile(
title: Text(
'${_.id} ${_.activity.target?.name}',
),
),
)
.toList(),
),
);
},
);
},
),
@Entity()
class ShopOrder {
int id;
final activity = ToOne<Activity>();
ShopOrder({
this.id = 0,
});
}
@Entity()
class Activity {
int id;
String name;
@Backlink()
final activities = ToMany<ShopOrder>();
Activity({
this.id = 0,
required this.name,
});
}