【发布时间】:2018-07-04 06:35:03
【问题描述】:
我的屏幕上有一个按钮,每当我点击它时我都会打电话给_fetchPost()。此方法调用fetchPost()。当我在var post = ... 行上设置断点时,我能够看到我解析的对象。但是,我的问题是 builder 不会被调用。
我是 Flutter 的新手,所以我的代码有问题吗?
void _fetchPost() {
FutureBuilder<Post>(
future: fetchPost(),
builder: (BuildContext context, AsyncSnapshot<Post> snapshot) {
if (snapshot.hasData) {
String res = snapshot.data.parm1.toString() + snapshot.data.op + snapshot.data.parm2.toString();
setState(() {
_result = res;
});
} else if (snapshot.hasError) {
setState(() {
_result = snapshot.error;
});
}
// By default, show a loading spinner
return CircularProgressIndicator();
},
);
}
Future<Post> fetchPost() async {
final response = await http.get('http://test.ethorstat.com/test.ashx');
if (response.statusCode == 200) {
// If server returns an OK response, parse the JSON
var post = Post.fromJason(json.decode(response.body));
return post;
} else {
// If that response was not OK, throw an error.
throw Exception('Failed to load post!');
}
}
【问题讨论】:
-
嗨,赫萨姆。我是这里的一名志愿者编辑,我们喜欢做的一件事就是为了简洁而编辑问题和答案。特别是,在技术写作中不需要诸如感谢、赞赏、称呼和签名之类的细节,我们不鼓励这样做。本文已在 Meta 上对此进行了讨论:Should I remove 'fluff' when editing questions?
-
@hesam 你能帮我解决这个相同类型的问题吗? stackoverflow.com/questions/64540805/…