Когда я выбираю элемент в списке ниже, он не меняется. Если я нажму на другие, то ничего не произойдет.
Как я могу изменить это значение как в firestore, так и в пользовательском интерфейсе?
Я знаю, мне нужно обновить 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();
}
DropdownButton имеет жестко закодированное значение: value: constantValue, -- но это должно быть значение из PostProvider, например: context.watch<PostProvider>().postCategory.





Вам нужно включить что-то для записи FireBase в путь кода. Провайдер не делает это за вас волшебным образом. Однако при этом вызове notify_listeners() могут просыпаться различные провайдеры или виджеты.
я уже включил но все равно не меняется
Этот вопрос нуждается в разработке. Какой код обновляет Firestore? Вы используете
ChangeNotifierProvider? (Он должен обернуть то, что вы хотите изменить, или вы ожидаете обновить Firestore, а затем обновить подписку на поток?)