외부에서 값을 받아서 빌드하는 것은
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