0

如果有人有解决方案,请帮助我。我无法将我的 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,
  });
}
4

0 回答 0