read<T extends Object> method

T read<T extends Object>({
  1. bool? onlyProvider = false,
})

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);
    }
  }
}