ChangeNotifierWidgetScopedQuery<Result extends Listenable?> constructor

const ChangeNotifierWidgetScopedQuery<Result extends Listenable?>(
  1. Result provider(
    1. QueryScopedValueRef<WidgetScopedValueRef> ref
    ), {
  2. Object? name,
  3. bool autoDisposeWhenUnreferenced = false,
})

ChangeNotifierScopedQuery available in the widget scope.

ウィジェットスコープで利用可能なChangeNotifierScopedQuery

ChangeNotifierScopedQuery makes it possible to define values globally and manage states individually and safely.

Only ChangeNotifier can be managed as a value. It is possible to monitor the status and send change notifications to the widget.

Specify in provider a callback that returns the value you wish to manage.

Normally hashCode is used to manage state names, but if you want to specify a special name, specify queryName.

If autoDisposeWhenUnreferenced is set to true, ScopedQuery will be automatically disposed of when it is no longer referenced by any widget.

ChangeNotifierScopedQueryを利用してグローバルに値を定義して個別に安全に状態を管理することが可能になります。

ChangeNotifierのみを値として管理できます。状態を監視し、変更通知をウィジェットに送信することが可能です。

providerに管理したい値を返すコールバックを指定してください。

通常はhashCodeを用いて状態の名前を管理しますが、特別に名前を指定したい場合はqueryNameを指定してください。

autoDisposeWhenUnreferencedtrueにすると、ScopedQueryがどのウィジェットからも参照されなくなった時に自動的に破棄されます。

final valueNotifierQuery = ChangeNotifierScopedQuery(
  () => ValueNotifier(0),
);

class TestPage extends PageScopedWidget {
  @override
  Widget build(BuildContext context, PageRef ref) {
    final valueNotifier = ref.page.query(valueNotifierQuery);

    return Scaffold(
      body: Center(child: Text("${valueNotifier.value}")),
    );
  }
}

Implementation

const ChangeNotifierWidgetScopedQuery(
  super.provider, {
  super.name,
  super.autoDisposeWhenUnreferenced,
});