How to Use InheritedWidget in Flutter

Explore InheritedNotifier and InheritedModel - subclasses of InheritedWidget in Flutter

·

1 min read

How to Use InheritedWidget in Flutter

InheritedWidget provides a way to share data across the widget tree in Flutter. It serves as a container for data that can be accessed by any descendant widget in the hierarchy. Whenever the data within the InheritedWidget changes, it triggers a rebuild of all the dependent widgets in the subtree.

However, besides InheritedWidget, there are two other subclasses, InheritedNotifier and InheritedModel, that offers unique approaches to sharing data in Flutter.

In this article, we will explore each of the subclasses and how they can be implemented by code.

Table of contents

  • What is InheritedNotifier?

    • Defining the Listenable class

    • Creating InheritedNotifier Class

    • Update the state

    • Using the InheritedNotifier

    • Key Points

  • What is InheritedModel?

    • Creating the InheritedModel Class

    • Using the InheritedModel

    • Key Points

  • Conclusion

What is InheritedNotifier?

InheritedNotifier is a subclass of InheritedWidget that combines the capabilities of InheritedWidget and ChangeNotifier. It propagates changes from a ChangeNotifier to descendant widgets. By wrapping ChangeNotifier with InheritedNotifier, you can automatically rebuild dependent widgets whenever the ChangeNotifier triggers updates using notifyListeners().

When creating an InheritedNotifier, you need to provide a Listenable object as its notifier parameter, such as ValueNotifier for simple objects or ChangeNotifier for complex objects.

To better understand the concept, let’s implement the demo.

For full demo access, check out Canopas Blog.