FrUnionViewModel class

提供一个全局VM, 用于简化代码. ⚠️ 单一全局VM不适用于复杂应用场景, 跨app复用状态可能造成不可预知的错误 与M对应的VM方法,请考虑通过 extension 封装

Inheritance
Implemented types

Constructors

FrUnionViewModel(Set<FrUnionModel> models)
factory
FrUnionViewModel.build(FrUnion initialState)
FrUnionViewModel.ofTag(Set<TaggedUnionModel> tagModels)
factory

Properties

hashCode → int
The hash code for this object.
no setterinherited
isClosed → bool
Whether the bloc is closed.
no setterinherited
logExtra → LogExtra?
set put log type
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
state → FrUnion
The current state.
no setterinherited
stream → Stream<FrUnion>
The current stream of states.
no setterinherited
value → FrUnion
Current state value using FlowR's legacy name.
no setterinherited

Methods

addError(Object error, [StackTrace? stackTrace]) → void
Reports an error which triggers onError with an optional StackTrace.
inherited
autoDispose<T extends StreamSubscription?>(T subs, {String? tag}) → T
inherited
autoDisposeNotifier<N extends ChangeNotifier?>(N ntf, {String? tag}) → N
inherited
close() → Future<void>
Close the bloc and dispose FlowR helper resources.
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
inherited
emit(FrUnion state) → void
Updates the state to the provided state. emit does nothing if the state being emitted is equal to the current state.
inherited
frPrint(String message, {DateTime? time, int? sequenceNumber, int? level, String? name, Zone? zone, Object? error, StackTrace? stackTrace}) → void
inherited
isDebounceLocked(Object tag) → bool
检查是否正在防抖等待中
inherited
isMutexLocked(Object tag) → bool
检查是否正在执行 mutex 任务
inherited
isThrottleLocked(Object tag) → bool
检查是否处于节流冷却期
inherited
logE(String message, {LogExtra? logExtra, Object? error, StackTrace? stackTrace, DateTime? time, int? sequenceNumber, String? name, Zone? zone}) → void
for 'error'
inherited
logF(String message, {LogExtra? logExtra, Object? error, StackTrace? stackTrace, DateTime? time, int? sequenceNumber, String? name, Zone? zone}) → void
inherited
logger(String message, {LogExtra? logExtra, DateTime? time, int? sequenceNumber, int level = 800, String? name, Zone? zone, Object? error, StackTrace? stackTrace, bool uriFrame = true}) → void
logExtra print stack frame info name logger.name null: will use 'runtimeType' stackTrace will print with red color by dev.log but if error == null: will ignore stackTrace
inherited
logI(String message, {LogExtra? logExtra, Object? error, StackTrace? stackTrace, DateTime? time, int? sequenceNumber, String? name, Zone? zone}) → void
inherited
logS(String message, {LogExtra? logExtra, Object? error, StackTrace? stackTrace, DateTime? time, int? sequenceNumber, String? name, Zone? zone}) → void
for debug 'shout'
inherited
logW(String message, {LogExtra? logExtra, Object? error, StackTrace? stackTrace, DateTime? time, int? sequenceNumber, String? name, Zone? zone}) → void
for 'warning'
inherited
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
ntfBy<T extends ChangeNotifier>(String tag) → T
inherited
onChange(Change<FrUnion> change) → void
Called whenever a change occurs with the given change. A change occurs when a new state is emitted. onChange is called before the state of the cubit is updated. onChange is a great spot to add logging/analytics for a specific cubit.
inherited
onError(Object error, StackTrace stackTrace) → void
Called whenever an error occurs and notifies BlocObserver.onError.
inherited
put(FrUnion value) → FrUnion
Put value to this cubit.
inherited
putError(Object error, [StackTrace? stackTrace]) → void
Put error value to this cubit.
inherited
putWithLogging(FrUnion value, {OnLogging<FrUnion>? logging}) → FrUnion
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, {Level level = Level.FINE}) → void
if you want interrupt the normal flow, but not trigger runCatching.onFailure
inherited
skpIfNull(Object? obj, String reason) → void
if obj ==null, throw SkipError ref skpIf
inherited
skpNull<T>(T? obj, String reason, {Level level = Level.FINE}) → T
if obj == null: throw SkipError else: return obj!
inherited
streamBy<M>({String tag = ''}) → Stream<M>
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<FrUnion> updater(FrUnion old), {dynamic onError(Object e, StackTrace s)?, int slowlyMs = 100, Object? debounceTag, Object? throttleTag, Object? mutexTag, dynamic ignoreSkipError = true, String onPutLogging(FrUnion cur)?, OnLogging<FrUnion>? logging}) → FutureOr<FrUnion?>
inherited
updateBy<M>(FutureOr<M> updater(M old), {String tag = '', dynamic onError(Object e, StackTrace s)?, int slowlyMs = 100, Object? debounceTag, Object? throttleTag, Object? mutexTag, OnLogging<M>? logging}) → FutureOr<M?>

Operators

operator ==(Object other) → bool
The equality operator.
inherited