简体   繁体   中英

How to check if a controller has put with Flutter GetX?

I have the following code:

Get.put(DbController(HabitDao(AppDb())));

When I hot reload my app, I get the following error:

"WARNING (moor): It looks like you've created the database class AppDb multiple times. When these two databases use the same QueryExecutor, race conditions will occur and might corrupt the database."

I need to check if I have put a DbController before creating a new AppDb instance. I never had this problem while using the Provider package.

What is the best practice to solve this?

You can check with Get.isRegistered .

For your code:

bool test = Get.isRegistered<DbController>(tag: 'TagInPut');

If you didn't use tag, you can delete it.

bool test = Get.isRegistered<DbController>();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM