【发布时间】:2022-06-12 22:03:41
【问题描述】:
这是 hive.db.dev 的原始代码。我试图修复它,但我不能。我试着把“?”和 ”!”但它没有解决它。这是代码。
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';
const darkModeBox = 'darkModeTutorial';
void main() async {
await Hive.initFlutter();
await Hive.openBox(darkModeBox);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ValueListenableBuilder(
valueListenable: Hive.box(darkModeBox).listenable(),
builder: (context, box, widget) {
var darkMode = box.get('darkMode', defaultValue: false);
return MaterialApp(
themeMode: darkMode ? ThemeMode.dark : ThemeMode.light,
darkTheme: ThemeData.dark(),
home: Scaffold(
body: Center(
child: Switch(
value: darkMode,
onChanged: (val) {
box.put('darkMode', !darkMode);
},
),
),
),
);
},
);
}
}
这里还有错误信息 =>
错误:方法 'get' 没有为类 'Object?' 定义。
- “对象”来自“飞镖:核心”。
尝试将名称更正为现有方法的名称,或定义名为“get”的方法。var darkMode = box.get('darkMode', defaultValue: false); ^^^错误:没有为类“Object?”定义方法“put”。
- “对象”来自“飞镖:核心”。
尝试将名称更正为现有方法的名称,或定义名为“put”的方法。box.put('darkMode', !darkMode); ^^^在 255 毫秒内重新启动应用程序。
【问题讨论】:
标签: flutter dart flutter-hive