如何初始化提供者?
How to init provider?
案例是:我将通过以下方式使用 MyProvider SomeProvidersClass.get().myProvider;
从这个结构:
class SomeProvidersClass {
late final myProvider =
Provider((ref) => MyProvider());
MyProvider get myProvider =>
read(providers.myProvider);
}
但是
我注意通过一些异步函数初始化 MyProvider;
所以我尝试通过以下方式进行:
class MyProvider {
late final SomeType _someVariable; // need to init in async way
Future<void> init() async => _someVariable = await SomeType.getInstance();
MyProvider();
// example of content of this provider that i am going to use
dynamic? getSmth() => _someVariable.getSmth();
}
我收到以下错误
LateInitializationError: field has not been initialized;
你能建议我任何方法吗?我是 riverpod 和供应商的新手:)
试试这个:
class MyProvider {
SomeType? _someVariable; // need to init in async way
Future<void> init() async => _someVariable = await SomeType.getInstance();
MyProvider(){
init();
}
// example of content of this provider that i am going to use
dynamic? getSmth() => _someVariable?.getSmth();
}
案例是:我将通过以下方式使用 MyProvider SomeProvidersClass.get().myProvider;
从这个结构:
class SomeProvidersClass {
late final myProvider =
Provider((ref) => MyProvider());
MyProvider get myProvider =>
read(providers.myProvider);
}
但是 我注意通过一些异步函数初始化 MyProvider; 所以我尝试通过以下方式进行:
class MyProvider {
late final SomeType _someVariable; // need to init in async way
Future<void> init() async => _someVariable = await SomeType.getInstance();
MyProvider();
// example of content of this provider that i am going to use
dynamic? getSmth() => _someVariable.getSmth();
}
我收到以下错误
LateInitializationError: field has not been initialized;
你能建议我任何方法吗?我是 riverpod 和供应商的新手:)
试试这个:
class MyProvider {
SomeType? _someVariable; // need to init in async way
Future<void> init() async => _someVariable = await SomeType.getInstance();
MyProvider(){
init();
}
// example of content of this provider that i am going to use
dynamic? getSmth() => _someVariable?.getSmth();
}