使用 Provider 更新 DropdownButton
DropdownButton updating with Provider
当我选择下面列表中的项目时,它不会改变。如果我单击其他,则什么也不会发生。
我如何更改 firestore 和 UI 的这个值?
我知道,我需要更新 value: constantValue,
这段代码,但我如何通过提供者做到这一点?
这里,按钮:
Widget dropdownButton(BuildContext context) {
String constantValue = "League Of Legends";
return DropdownButton(
value: constantValue,
onChanged: (newValue) {
context.read<PostProvider>().postCategory = newValue;
},
items: <String>["League Of Legends", "Steam", "Csgo"]
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList());
}
还有供应商:
String _postCategory;
String get postCategory => _postCategory;
set postCategory(String value) {
_postCategory = value;
notifyListeners();
}
您需要在代码路径中包含用于编写 FireBase 的内容。提供者不会神奇地为你做那件事。但是,您 可以 让各种提供程序或小部件在该 notify_listeners() 调用中唤醒。
当我选择下面列表中的项目时,它不会改变。如果我单击其他,则什么也不会发生。
我如何更改 firestore 和 UI 的这个值?
我知道,我需要更新 value: constantValue,
这段代码,但我如何通过提供者做到这一点?
这里,按钮:
Widget dropdownButton(BuildContext context) {
String constantValue = "League Of Legends";
return DropdownButton(
value: constantValue,
onChanged: (newValue) {
context.read<PostProvider>().postCategory = newValue;
},
items: <String>["League Of Legends", "Steam", "Csgo"]
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList());
}
还有供应商:
String _postCategory;
String get postCategory => _postCategory;
set postCategory(String value) {
_postCategory = value;
notifyListeners();
}
您需要在代码路径中包含用于编写 FireBase 的内容。提供者不会神奇地为你做那件事。但是,您 可以 让各种提供程序或小部件在该 notify_listeners() 调用中唤醒。