为什么我的StreamBuilder没有更新我的Post模型



我已经成功构建了我的streambuilder,它第一次获取值,但当我更新内容(发布新内容或补丁(时,它不会在streambuilder内部更新。为什么?

Stream<List<Post>> FetchPostsStream(http.Client client) async* {
List<Post> posts;
final response = await http.get("$SERVER_IP/api/articles/?format=json");
final parsed = jsonDecode(response.body).cast<Map<String, dynamic>>();
posts = parsed.map<Post>((json) => Post.fromJSON(json)).toList();
}
Stream fetchPostsStreaminit;
@override
void initState() {
fetchPostsStreaminit = FetchPostsStream(http.Client());
}

StreamBuilder<List<Post>>(
stream: fetchPostsStreaminit,
builder: (context, snapshot) {
if (snapshot.hasError) print(snapshot.error);
return snapshot.hasData ?
PostsList(posts:snapshot.data)   :   Text('Waiting');
},
),

http不是这样工作的,http是单向的(你询问服务器并得到响应(。使用Stream无法解决此问题——您必须在服务器、HTTP/2或任何其他解决方案上使用套接字,以便实现双向通信(服务器在没有明确请求的情况下为您提供数据(。

最新更新