ChangeNotifierWidgetScopedQueryFamily<Result extends Listenable?, Param> constructor
- Result provider(
- QueryScopedValueRef<
WidgetScopedValueRef> ref, - Param param
- QueryScopedValueRef<
- Object? name,
- bool autoDisposeWhenUnreferenced = false,
You can pass one parameter ChangeNotifierWidgetScopedQuery.
パラメーターを一つ渡すことができるChangeNotifierWidgetScopedQuery。
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
を指定してください。
autoDisposeWhenUnreferenced
をtrue
にすると、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 ChangeNotifierWidgetScopedQueryFamily(
super.provider, {
super.name,
super.autoDisposeWhenUnreferenced,
});