我有这个设置。我有一个小部件,可以保存我的搜索文本字段。
现在,我想听的是在bloc类中侦听并获取文本字段值,并能够与其他构造函数一起使用。
这是文本字段:
TextField(
controller: _searchinput,
onChanged: chatBloc.onChatTextChanged.add
);
这是我想获取值的块类。 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)
没用显然,这样做不是正确的方法。那么正确的方法是什么呢?
最佳答案
你必须更换
BehaviorSubject<String> searchtext;
Sink<String> get searchtextsetter => searchtext.sink;
与BehaviorSubject<String> searchtext;
Sink<String> get searchtextsetter => searchtext.sink.add;
和onChanged: chatBloc.onChatTextChanged.add
与onChanged: chatBloc.searchtextsetter
关于flutter - 如何将文本字段值从小部件获取到整 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64209284/