Issue
I am getting this error :
Exception caught by widgets library
LateInitializationError: Field ‘count’ has not been initialized.
The relevant error-causing widget was
Consumer
lib\…\views\base_view.dart:31
How can I fix this error? Thank you ?
import 'package:provider/provider.dart';
import '../../locator.dart';
class BaseView<T extends ChangeNotifier> extends StatefulWidget {
final Widget Function(BuildContext context, T value, Widget? child) builder;
final Function(T)? onModelReady;
BaseView({required this.builder, required this.onModelReady});
@override
_BaseViewState<T> createState() => _BaseViewState<T>();
}
class _BaseViewState<T extends ChangeNotifier> extends State<BaseView<T>> {
T model = locator<T>();
@override
void initState() {
if (widget.onModelReady != null) {
widget.onModelReady!(model);
}
super.initState();
}
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<T>(
create: (context) => model,
child: Consumer<T>(builder: widget.builder),
);
}
}```
Solution
This error message says that you have declared the "count" variable with the late modifier, which means that you promised that it would not be null, but you got an error, which means you did not keep your promise. To fix this, you should rethink your code or give the count variable a default value. Initialization example:
static int count = 5;
Answered By – Legend5366
Answer Checked By – Gilberto Lyons (FlutterFixes Admin)