read<T extends Object> method
onlyProvider
false: read Provider first, then Global
true: only read provider;
null: read Global first, then Provider;
Implementation
T read<T extends Object>({bool? onlyProvider = false}) {
if (onlyProvider == false) {
// provider -> global
try {
return Provider.of<T>(this, listen: false);
} catch (e) {
return _readGlobal<T>(nothrow: false)!;
}
} else if (onlyProvider == true) {
return Provider.of<T>(this, listen: false);
} else {
try {
return _readGlobal<T>(nothrow: false)!;
} catch (e) {
log(
'Waring! `read<$T>(onlyProvider=null)` read Global first, then Provider',
name: 'FlowR',
);
return Provider.of<T>(this, listen: false);
}
}
}