I'm watching The Boring Flutter Development Show where in one of the episodes they're showing the implementation of Bloc.
Now there's this chunk of code that I thought would be better replace with Switch statement, you know, in case there appears more cases in the future:
_storiesTypeController.stream.listen((storiesType) {
if (storiesType == StoriesType.newStories) {
_getArticlesAndUpdate(_newIds);
} else {
_getArticlesAndUpdate(_topIds);
}
});
... so I tried to implement it but it gave me some error saying that
Type 'Type' of the switch expression isn't assignable to the type 'Stories Type' of case expressions.
So I came up with this workaround:
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');
}
}
});
... and everything works fine but I wonder if there's another way to switch Enum and why it says the value of local variable storyType isn't used, when I use it in this line:
_storiesTypeController.stream.listen((storyType)
and I switch over it?