我已经升级到最新版本的flutter,并且现在开始学习并升级我使用的软件包。我注意到几个软件包中发生了一些重大更改,但是rxdart软件包中的重大更改使我感到困惑。
开发人员保留了他们的变更日志,并在0.23.0中提到,他们删除了here所见的可观察类,甚至制作了codemod包来尝试使迁移变得容易,{{3 }}。这仅修复了我的几个问题,并留下了另外几个问题。
Epic<AppState> getConversationPreviewsEpic(ConversationRepository repo) {
return (Stream<dynamic> actions, EpicStore<AppState> store) {
return Stream(actions)
.whereType<SubscribeConversationPreviews>() // <-- subscribe to conversations stream
.where((action) => action.fromUser != null)
.switchMap((action) {
isConversationLoading = true;
return repo
.getConversationPreviewStream(action.fromUser, lastSnapshotAction: (lastTimeStamp, hasMore){
lastConversationTimeStamp = lastTimeStamp;
hasMoreConversations = hasMore;
})
.map((rooms) => ConversationPreviewsSnapshot(rooms)) //<-- when new conversations come in add them to the redux store
.takeUntil(actions.where((a) => a is UnsubscribeConversationPreviews)); //<-- unsubscribe from conversations stream
});
};
}
我遇到的所有问题都与这里的问题相似。我希望我可以像我的编辑器一样在红色下划线。因此,在代码块的第2行显示
Stream<dynamic> actions
我收到一个错误,表明Stream不是一种类型 然后在下一行
return Stream(actions)
我得到一个错误,即Stream()不接受任何参数。我删除了参数,红线消失了,但是我无法测试代码是否仍然有效,因为我不知道如何解决第一个错误。
最后一件事,fromIterable和fromFuture不再起作用,我在文档中也看不到如何调整它们以使其再次起作用
答案 0 :(得分:0)
RxDart 0.24.x基于扩展方法,直接在Stream
上调用方法。
import 'package:rxdart/rxdart.dart';
actions.whereType< SubscribeConversationPreviews >();