FrChangeNotifierVM<M extends dynamic> class
abstract
support Provider-Consumer adapt ChangeNotifierProvider use ChangeNotifier
- Inheritance
-
- Object
- IService
- FrService
- FlowR<
M> - FrViewModel<
M> - FrChangeNotifierVM
- Mixed-in types
- Available extensions
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- initValue → M
-
when
_subjectinit, get seed valueno setterinherited - logExtra → LogExtra?
-
set put log type
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
stream
↔ ValueStream<
M> -
subject.streamgetter/setter pairinherited -
subject
→ BehaviorSubject<
M> -
no setterinherited
- value → M
-
subject.valueno setterinherited
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
autoDispose<
T extends StreamSubscription?> (T subs, {String? tag}) → T -
inherited
-
autoDisposeNotifier<
N extends ChangeNotifier?> (N ntf, {String? tag}) → N -
inherited
-
debounce<
R> (Object tag, Duration duration, FutureOr< R> action(), {Duration? maxDuration}) → FutureOr<R?> -
debounce 防抖: 停止操作后等待
duration执行最后一次。maxDuration: 可选,解决“无限重置”问题。如果持续触发超过此时间,强制执行一次。inherited -
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
dispose(
) → void -
Discards any resources used by the object. After this is called, the
object is not in a usable state and should be discarded (calls to
addListener will throw after the object is disposed).
inherited
-
frPrint(
String message, {DateTime? time, int? sequenceNumber, int? level, String? name, Zone? zone, Object? error, StackTrace? stackTrace}) → dynamic -
inherited
-
isDebounceLocked(
Object tag) → bool -
检查是否正在防抖等待中
inherited
-
isMutexLocked(
Object tag) → bool -
检查是否正在执行 mutex 任务
inherited
-
isThrottleLocked(
Object tag) → bool -
检查是否处于节流冷却期
inherited
-
listen(
void onChange(T ntf)?, {bool where(T ntf)?}) → T -
Available on T, provided by the ChangeNotifierX extension
wherefilter the notification, -
logger(
String message, {LogExtra? logExtra = !kReleaseMode ? LogExtra.self : null, bool uriFrame = false, DateTime? time, int? sequenceNumber, int level = 0, String? name, Zone? zone, Object? error, StackTrace? stackTrace}) → dynamic -
logExtraprint stack frame infonamelogger.name null: and iflogExtra==null: will use 'runtimeType' else: will use stack frame infostackTracewill print with red color by dev.log but iferror== null: will ignorestackTraceinherited -
mutex<
R> (Object tag, FutureOr< R> action()) → FutureOr<R?> -
mutex 互斥锁 (Exhaust): 立即执行,执行期间的触发直接丢弃。
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
[FutureOr< M> update(M old)?]) → void -
when invoke FrChangeNotifierMx.notifyListeners
must invoke
update(put)inherited -
ntfBy<
T extends ChangeNotifier> (String tag) → T -
inherited
-
put(
M value) → M -
when invoke update (put)
will call ChangeNotifier.notifyListeners
inherited
-
putError(
Object error, [StackTrace? stackTrace]) → void -
put error value to
_subjectinherited -
putWithLogging(
M value, {OnLogging< M> ? logging}) → M -
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
runCatching<
R> (FutureOr< R?> block(), {FutureOr<R?> onSuccess(R data)?, FutureOr<R?> onFailure(Object e, StackTrace s)?, bool ignoreSkipError = true, int slowlyMs = 0, Object? debounceTag, Object? throttleTag, Object? mutexTag}) → FutureOr<R?> -
run and catch error, then putError
inherited
-
skpIf(
bool condition, String reason) → void -
if you want interrupt the normal flow, but not trigger
runCatching.onFailureinherited -
skpIfNull(
Object? obj, String reason) → void -
if
obj==null, throw SkipError ref skpIfinherited -
skpNull<
T> (T? obj, String reason) → T -
if
obj== null: throw SkipError else: returnobj!inherited -
subBy<
T extends StreamSubscription> (String tag) → T -
inherited
-
throttle<
R> (Object tag, Duration duration, FutureOr< R> action(), {bool ensureLast = false}) → FutureOr<R?> -
throttle 节流: 固定频率执行。
配合 mutex 解决异步任务重叠问题:如果周期到了但上次任务还没跑完,直接跳过。
ensureLast: 如果为 true,则在节流期间的最后一次触发将被防抖补发。inherited -
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A brief description of this object, usually just the runtimeType and the
hashCode.
inherited
-
update(
FutureOr< M> updater(M old), {dynamic onError(Object e, StackTrace s)?, int slowlyMs = 100, Object? debounceTag, Object? throttleTag, Object? mutexTag, dynamic ignoreSkipError = true, String onPutLogging(M cur)?, OnLogging<M> ? logging}) → FutureOr<M?> -
updaterif return value, will callputif return null, will not callput/putErroronErrorif set null,will callputErrorif set function value, will not callputError, you can invokeputErrormanuallyslowlyMsif set <=0 value, will ignore debounce/throttleTagdebounceTagenable debounce, require unique within the VM scopethrottleTagenable throttle, require unique within the VM scopemutexTagenable concurrency lock (Exhaustive behavior), if the previous update with the same mutexTag is still running, the current update will be ignored.ignoreSkipErrorrefrunCatching.ignoreSkipErrorinherited -
updateRaw(
FutureOr< M> up(M old), {dynamic onError(Object e, StackTrace s)?, int slowlyMs = 100, Object? debounceTag, Object? throttleTag, dynamic ignoreSkipError = true}) → FutureOr<M?> -
Deprecated use 'update'
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited