I have provider:
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
class AppProvider extends ChangeNotifier {
Box tjkBox;
// Language
String _ln = "ru";
String get ln => _ln;
set ln(String l) {
_ln = l;
tjkBox.put("language", l);
notifyListeners();
}
AppProvider() {
tjkBox = Hive.box("tjk");
_ln = tjkBox.get("language", defaultValue: "ru");
print("ln = $_ln");
}
}
I wrap my root widget:
return MultiProvider(
providers: [
ChangeNotifierProvider<AppProvider>(create: (_) => AppProvider()),
// here goes other providers
],
child: ...
);
Then I am trying to access to the ln property like this:
Consumer<AppProvider>(
builder: (context, app, child) => Text(app?.ln),
)
Or like this:
Text(Provider.of<AppProvider>(context).ln)
But it keeps giving me error:
The getter 'ln' was called on null.
Please explain, What I am missing?
question from:
https://stackoverflow.com/questions/65872159/the-getter-was-called-on-null-error-when-using-provider-on-flutter 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…