notify method

void notify()

强制触发响应变更,ValueNotifier 有 2 种情况无法自动响应副作用函数:

  1. 原始值是一个对象,如果修改对象本身,则无法被 setter 方法拦截;
  2. setter 方法在通知前会将新增与旧值做对比,如果新值与旧值一样则不会响应监听;

Implementation

void notify() {
  if (widget.modelValue is ValueNotifier) {
    (widget.modelValue as ValueNotifier).notifyListeners();
  } else {
    obs.notify();
  }
  widget.onChanged?.call(modelValue);
}