【发布时间】:2019-08-19 12:23:12
【问题描述】:
我是 Flutter 的新手,面临 StreamBuilder 和 ListView.builder 的问题。
根据显示的其他按钮,我正在单击卡列表中可用的按钮(应用按钮)进行网络调用。
我面临的问题是网络调用成功后小部件没有更新,但是当我刷新页面时,我得到了更新的结果。
我做错了什么?
我没有使用任何状态。我需要使用它吗?
小部件代码
StreamBuilder(
initialData: [],
stream: dataBoc.ListData,
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemBuilder: (BuildContext context, index) {
return InkWell(
key: Key(snapshot.data[index]["lid"]),
child: DataCard(
DataModel(snapshot.data[index]),
),
onTap: () {
Navigator.pushNamed(context, "/detailPage",
arguments: snapshot.data[index]["id"]);
},
);
},
itemCount: snapshot.data.length,
);
}
},
),
区号
//这是我向流中添加数据的方式
if (res.statusCode == 200) {
var data = json.decode(res.body);
if (data['status'] == true) {
// listDataStream.sink.add(data['result']);
listDataStream.add(data['result']);
} else {
listDataStream.sink.addError("Failed to Load");
}
}
预期结果:当我拨打网络电话时,如果成功,则根据网络结果,其他按钮必须显示在相应的卡上。
【问题讨论】:
-
能否提供完整的源代码?
-
@nucleartux 我已经解决了这个问题。谢谢
标签: flutter