toRaw<T> function
Returns the raw, original value from a reactive wrapper.
Works with Ref, ShallowRef, Computed, and Readonly. For non-reactive values, returns the value as-is.
Example:
final count = ref(42);
toRaw(count); // 42
final obj = ref({'a': 1});
toRaw(obj); // {'a': 1}
Implementation
T toRaw<T>(Object? value) {
if (value is Ref<T>) {
return value.raw;
}
if (value is ShallowRef<T>) {
return value.raw;
}
if (value is Computed<T>) {
return value.value;
}
if (value is Readonly<T>) {
return toRaw<T>(value.source);
}
return value as T;
}