반응형
질문
나는 홈페이지가 있습니다. 클릭하면 탐색을 통해 다른 페이지로 이동하고, 그곳에서 몇 가지 작업을 수행한 다음 뒤로 버튼을 누르면 홈페이지로 돌아갑니다. 그러나 문제는 홈페이지가 새로 고쳐지지 않는다는 것입니다.
뒤로 버튼을 누를 때 페이지를 다시로드하고 홈페이지를 새로 고칠 수 있는 방법이 있을까요?
답변
첫 번째 페이지로 돌아갈 때 이렇게 API 호출을 트리거할 수 있습니다. 의사 코드
class PageOne extends StatefulWidget {
@override
_PageOneState createState() => new _PageOneState();
}
class _PageOneState extends State<PageOne> {
_getRequests()async{
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Center(
child: new RaisedButton(onPressed: ()=>
Navigator.of(context).push(new MaterialPageRoute(builder: (_)=>new PageTwo()),)
.then((val)=>val?_getRequests():null),
),
));
}
}
class PageTwo extends StatelessWidget {
@override
Widget build(BuildContext context) {
//somehwere
Navigator.pop(context,true);
}
}
또는 API가 자주 업데이트되는 경우 스트림을 사용할 수 있으며, 새로운 데이터는 자동으로 ListView
내에서 업데이트됩니다.
예를 들어 firebase를 사용하여 다음과 같이 할 수 있습니다.
stream: FirebaseDatabase.instance.reference().child(
"profiles").onValue
데이터베이스에서 무언가를 변경할 때마다 (프로필 편집 페이지에서 예를 들어) 프로필 페이지에 반영됩니다. 이 경우 onValue
를 사용하고 있으므로 변경 사항을 계속 감시하고 대신 업데이트를 수행합니다.
반응형
댓글