如何将参数传递给 Riverpod 中的 ChangeNotifierProvider?

问题描述

所以我有这样愚蠢的例子

class UserProvider with ChangeNotifier {
  bool isFemale;
  UserProvider(this.isFemale);
}


// I am confused when creating this userProvider below
final userProvider = ChangeNotifierProvider.autodispose.family<bool><UserProvider((ref,isFemale) {
  return UserProvider(isFemale);
});



class MyPage extends ConsumerWidget {

  @override
  Widget build(context,watch) {

    final provider = watch(userProvider(false)); // <--- need to pass a bool from here

    return Container();
  }
}

我需要将一个布尔值从 MyPage 小部件传递给我的 UserProvider 。但我很困惑如何构建它,因为我有这样的错误

enter image description here

我正在使用:Flutter_riverpod:^0.14.0+3

解决方法

您需要使类型参数与参数匹配。

首先,指定提供的类,然后指定传递的类型 family

final userProvider = ChangeNotifierProvider.autoDispose.family<UserProvider,bool>((ref,isFemale) {
  return UserProvider(isFemale);
});