[flutter] 외부에서 값을 주입할 때 streamcontroller

Edward Hyun·2021년 11월 17일
0

app&web-dev

목록 보기
10/178

외부에서 값을 받아서 빌드하는 것은
futurebuilder나 streambuilder를 사용하면 되고

ui로 표현하는 것이 아니라, 외부 값 변동에 따라
함수를 실행하고 싶을 때 (예를 들면, 타이머 등)는
streamcontroller를 사용하면 가능하다.

import 'dart:async'; 라이브러리를 사용하며

호출하는 쪽에서

StreamController ctrl = StreamController(); 선언한 후
ctrl.add('xxx'); 이벤트 xxx를 넣어주면 

받는 쪽에서 리슨하고 있다고 이벤트를 받아서 로직을 수행하면 된다.
리슨 받는 부분은 initState 등 시작 할 때 선언해 주면 된다.

  @override
  void initState() {
    super.initState();
    // TODO: implement initState
    Controller.to.ctrl.stream.listen((event) {
      if(event == 'xxx') {
      	함수실행();
      }
    });
  }

참고 :: https://www.woolha.com/tutorials/flutter-using-streamcontroller-and-streamsubscription

profile
앱&웹개발(flutter, vuejs, typescript, react), 인공지능(nlp, asr, rl), 백엔드(nodejs, flask, golang, grpc, webrtc, aws, msa, nft, spring cloud, nest.js), 함수형 프로그래밍(scala, erlang)을 공부하며 정리합니다.

0개의 댓글