【发布时间】:2020-10-05 13:09:22
【问题描述】:
我有这个设置。我有一个包含我的搜索文本字段的小部件。 现在我要做的是在我的 bloc 类中侦听并获取文本字段值,并能够与不同的构造函数一起使用。
这是文本字段:
TextField(
controller: _searchinput,
onChanged: chatBloc.onChatTextChanged.add
);
这是我想要获取值的 bloc 类。
class ChatBloc extends ChatService {
ChatBloc.empty();
ChatBloc(chatroomid) {
_subject.addStream(fetchFirstListStream(chatroomid));
}
ChatBloc.forSearchScroll(chatroomid, [items]) {
_controller.listen(
(notification) => loadmoreSearchChats(chatroomid, notification));
});
loadmoreSearchChats(chatroomid, notification){
// So I can use the search term here.
}
}
我想在 ChatBloc.forSearchScroll 中有 searchterm 值。构造函数,如果可能,该值应该作为 bloc 类中的全局值可用,我可以在该类的其他方法中使用。例如,我应该能够在 loadmoreSearchChats 方法中使用文本字段值执行更多搜索过滤器。
我尝试了 RxDart BehaviorSubject
BehaviorSubject<String> searchtext;
Sink<String> get searchtextsetter => searchtext.sink;
并且在小部件中尝试添加值:
chatBloc.searchtextsetter.sink.add(value)
没有用。 显然没有以正确的方式做这件事。那么正确的方法是什么?
【问题讨论】: