flutter - 如何将文本字段值从小部件获取到整 block

标签 flutter dart

我有这个设置。我有一个小部件,可以保存我的搜索文本字段。
现在,我想听的是在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/

相关文章:

android - 强制Flutter Android应用程序像在iOS设备上一样运行

android - 如何在 Flutter 中使用本地资源播放音频?

dart - GestureDetector 内的 ScrollView : Dispatch Touch Events

flutter - ListView Flutter 上的 float 操作按钮

dart - 如何获得 MethodInvocation 的完全限定目标?

flutter - 从数组中删除特定项目会删除UI中的错误项目

flutter - 又抛出异常: Multiple widgets used the same GlobalKey

listview - Flutter:水平 ListView 的最小高度

dart - Flutter Future 返回 null

dart - 在点击图标时呈现屏幕