dependents 0.0.1
dependents: ^0.0.1 copied to clipboard
Flutter widgets for building and reacting to changes in dependencies, such as inherited widgets or listenable objects.
Dependents is a Flutter package that provides widgets for building and reacting to changes in dependencies, such as inherited widgets or listenable objects, making it easier to manage and respond to dynamic data in the widget tree.
Features #
- Build widgets that automatically rebuild when a dependency changes (e.g., inherited widgets, ValueNotifier, or any Listenable).
- React to dependency changes with custom callbacks.
- Easily access the current dependency value in the widget tree.
- Compose with other widgets and state management solutions.
Getting started #
Add the following to your pubspec.yaml:
dependencies:
dependents: <latest_version>
Import the package:
import 'package:dependents/dependents.dart';
Usage #
Example: Rebuild on Theme Change #
DependentBuilder<Brightness>(
dependency: (context) => Theme.of(context).colorScheme.brightness,
builder: (context, _) => Text("${DependentBuilder.dependencyOf<Brightness>(context)}"),
)
Example: Rebuild on Special Property change #
final userValueNotifier = ValueNotifier<User>(User(name: 'Alice', age: 22));
DependentBuilder<String>(
listenable: userValueNotifier,
dependency: (context) => userValueNotifier.value.name,
builder: (context, _) => Text(userValueNotifier.value.name),
)
Example: Use DependencyListener #
DependencyListener<String>(
listenable: userValueNotifier,
dependency: (context) => userValueNotifier.value.name,
listener: (name) => print('User name changed: $name'),
child: Container(),
)
Example: React on Brightness Change #
DependentBuilder<bool>(
dependency: (context) => Theme.of(context).colorScheme.onPrimary.computeLuminance() > 0.5,
listener: (light) => Text("${light ? "LIGHT" : "DARK"}"),
)