I've always been thinking that in Flutter GetX library, if I have an observable variable defined in this way
Rxn<MyClass> myObsObject = Rxn<MyClass>();
I could update its value by doing:
myObsObject(newValue)
/ myObsObject(null)
or in an EQUIVALENT WAY
myObsObject.value = newValue
/ myObsObject.value = null
Today I discovered that the 2 methods are NOT equivalent, since doing the first way in some cases (don't know how to reproduce ATM) doesn't retrigger the builder of a GetX
widget, while the second does.
So what is/are the difference(s) between the two methods up above?
CodePudding user response:
You can check the implementation of the first way and you will see that it is this:
T call([T? v]) {
if (v != null) {
value = v;
}
return value;
}
So basically, it still does the assignment to value
except when the value is null.
So myObsObject(newValue)
should work fine in all cases except when newValue
is null