UseCompute<T> constructor
UseCompute<T> (
- T compute(),
- List<
ReactterState> dependencies
A ReactterHook that allows to compute a value using a predetermined compute function and a list of state dependencies, and which automatically updates the computed value if a dependency changes.
This example produces one simple UseCompute:
class AppController {
final stateA = UseState(1);
final stateB = UseState(7);
late final computeState = UseCompute(
() => (stateA + stateB).clamp(10, 15),
[stateA, stateB],
);
AppController() {
print(computeState.value); // 10;
UseEffect((){
print(computeState.value);
// will print: 11, 15, 11
}, [computeState]);
stateA.value += 1; // numClamp doesn't change, its value is 10
stateB.value += 2; // numClamp changes, its value is 11
stateA.value += 4; // numClamp changes, its value is 15
stateB.value += 8; // numClamp doesn't change, its value is 15
stateA.value -= 8; // numClamp doesn't change, its value is 15
stateB.value -= 4; // numClamp changes, its value is 11
}
}
Implementation
UseCompute(
this.compute,
this.dependencies,
) {
_valueComputed = compute();
for (var dependency in dependencies) {
Reactter.on(dependency, Lifecycle.didUpdate, _onDependencyChanged);
}
}