Я смотрю Шоу Развития Скучного Флаттера, где в одном из эпизодов они показывают реализацию Блока.
Теперь есть кусок кода, который, я подумал, лучше заменить на оператор Switch, знаете, на случай, если в будущем появится больше случаев:
_storiesTypeController.stream.listen((storiesType) {
if (storiesType == StoriesType.newStories) {
_getArticlesAndUpdate(_newIds);
} else {
_getArticlesAndUpdate(_topIds);
}
});
... поэтому я попытался реализовать это, но это дало мне ошибку, сказав, что
Тип «Тип» выражения переключения не может быть назначен типу «Тип историй» выражений регистра.
Итак, я нашел этот обходной путь:
final storyType = StoriesType.newStories;
_storiesTypeController.stream.listen((storyType) {
switch (storyType) {
case StoriesType.newStories: {
_getArticlesAndUpdate(_newIds);
}
break;
case StoriesType.topStories: {
_getArticlesAndUpdate(_topIds);
}
break;
default: {
print('default');
}
}
});
... и все работает нормально, но мне интересно, есть ли другой способ переключения Enum и почему он говорит, что значение локальной переменной storyType не используется, когда я использую его в этой строке:
_storiesTypeController.stream.listen((storyType)
а я это переключаю?