【发布时间】:2021-12-23 09:51:02
【问题描述】:
尽管 groupValue 已更新,但我有一个单选按钮未在通知侦听器上更新,单选按钮未更新。我使用多提供者。
这是电台选择
ListTile(
leading: Icon(
Icons.edit_outlined,
),
title: Text('Post now'),
trailing: Radio<PostOption>(
value: PostOption.now,
groupValue: Provider.of<Post>(context).postOption,
onChanged: (value) {
Provider.of<Post>(context, listen: false)
.choosePostOption(value);
},
),
),
ListTile(
leading: Icon(
Icons.drive_folder_upload,
),
title: Text('Save as Draft'),
trailing: Radio<PostOption>(
value: PostOption.draft,
groupValue: Provider.of<Post>(context).postOption,
onChanged: (value) {
Provider.of<Post>(context, listen: false)
.choosePostOption(value);
},
),
),
这里是提供者类
class Post extends ChangeNotifier {
PostOption postOption;
void choosePostOption(PostOption option) {
postOption = option;
notifyListeners();
}
}
这是我设置提供程序的主要位置
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
Provider<Post>(
create: (context) => Post(),
),
Provider<Content>(
create: (context) => Content(),
),
],
child: MaterialApp(
),
);
}
}
【问题讨论】:
标签: flutter flutter-provider flutter-widget flutter-state