나는 밖으로 알 수없는 펄터를 시험해 보는 동안 문제를 보았습니다.흔들림 : 미래의 스냅 샷을 기반으로 조치를 취하십시오.
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Example Page"),
),
body: new FutureBuilder(
future: _exampleFuture,
builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting: return new Center(child: new CircularProgressIndicator(),);
default:
if(snapshot.hasError) {
return new Center(child: new Text('Error: ${snapshot.error}'),);
}
else {
return new Center(child: new Text("Result: ${snapshot.data}"),);
}
}
}
)
);
}
지금의 미래는 사용자가 권한이없는 것을 나타내는, 401 오류와 함께 끝나는 HTTP 호출 가정하자 : 나는 생각하고 사건은 FutureBuilder
위젯 아래와 같이 있습니다. 이 시점에서 앱에 저장된 토큰을 지우고 로그인 페이지로 리디렉션하거나 앱을 다시 작성하고 싶습니다. 하지만 빌드 함수에서 그렇게하는 메서드를 호출 할 수 없습니다 및 build
호출되기 전에 미래 값을 반환 할 수 있으므로 didUpdateWidget()
호출 될 것이라고 생각하지 않습니다? 어쩌면 내가 완전히 잘못 접근하고 있지만, 펄터에서 이것을 할 수있는 방법이 있습니까?
내 코드를 조금 쥐게 한 : 그럼 당신은 이런 FutureBuilder을 가질 수
합니다. – aziza