У меня есть провайдер со состояниями:
enum RemoteJSONState { parsing, parsed, failedToParse }
В одном из своих виджетов я слушаю все изменения с помощью
class RemoteJSONStateProvider with ChangeNotifier {
set remoteJSONState(RemoteJSONState givenState) {
if (givenState == _remoteJSONState) {
return;
}
_remoteJSONState = givenState;
notifyListeners();
}
}
В другом моем виджете я хочу слушать только проанализированное состояние. Это связано с тем, что изначально мой виджет обрабатывает информацию на основе локального хранилища. Когда извлекаются удаленные данные, они обновляются полученной информацией. Если загрузка не удалась, я просто не хочу создавать свой виджет и хочу использовать доступную локальную информацию. Следовательно, я не хочу, чтобы виджет перестраивался.
Вот что я пробовал до сих пор.
@override
Widget build(BuildContext context) {
RemoteJSONStateProvider =
Provider.of<RemoteJSONStateProvider>(context);
}
Проблема в том, что мой виджет перестраивается, если состояние RemoteJSONStateProvider изменяется на failedToParse. Как я могу прислушиваться только к условию? который
RemoteJSONStateProvider._remoteJSONState == RemoteJSONState.parsed