computeValue method

T? computeValue({
  1. required bool track,
})

Implementation

T? computeValue({required bool track}) {
  _isComputing = true;
  _context.pushComputation();

  T? value;
  if (track) {
    value = _context.trackDerivation(this, _fn);
  } else {
    if (_context.config.disableErrorBoundaries == true) {
      value = _fn();
    } else {
      try {
        value = _fn();
        _errorValue = null;
      } on Object catch (e, s) {
        _errorValue = MobXCaughtException(e, stackTrace: s);
      }
    }
  }

  _context.popComputation();
  _isComputing = false;

  return value;
}