.family
パラメータを再度渡さずに、提供された " " 変更通知子 (既にインスタンス化されており、正しいパラメータを渡している)のインスタンスにアクセスする方法はありますか?
プロバイダ内
ChangeNotifier (パラメーターが必要) のプロバイダーを作成すると、提供されているのと同じ変更通知を取得できますProvider.of<ChangeNotif>(context)
。
class ChangeNotif extends ChangeNotifier {
final String id;
const ChangeNotif(this.id);
}
ChangeNotifierProvider(create: (_) => ChangeNotif("dash"));
Provider.of<ChangeNotif("dash")>(context)
適切なパラメーターを使用してプロバイダーが作成されると、 butのような構文を使用せずに、そのウィジェット ツリーの任意の場所にプロバイダーが提供するものを取得できますProvider.of<ChangeNotif>(context)
。
リバーポッドで
プロバイダーのインスタンスを取得するときにパラメーターをプロバイダーに渡す必要があるため、プロバイダーが提供する変更通知を必要とする子にそれを渡すために、プロバイダーを変数に割り当てる必要がありました。
final changeNotifProvider = ChangeNotifierProvider.family<ChangeNotif, String>((ref, id) => ChangeNotif(id));
class A extends HookWidget {
build() {
final _changeNotifProvider = changeNotifProvider("dash");
final _changeNotif = useProvider(_changeNotifProvider);
return Column(
children: [
B(),
c(_changeNotifProvider),
]
);
}
}
_changeNotif
子ウィジェットにパラメーターとして渡さずにインスタンス化する方法はありますか? A の子ではない別のウィジェットで _changeNotif の同じインスタンスを取得する方法はありますか (Provider.of<ChangeNotif>(context)
新しいパラメーターを渡すことなくプロバイダーで使用するなど)?