我如何更新从颤振未来的构建器获取的数据?



在我的应用程序中,我有一个屏幕,其中包含3个不同的未来建设者,我想更新从未来的建设者恢复的数据。我尝试了setState()方法,但这更新了页面上所有3个未来的构建器,我只需要更新一个。我该怎么办?

我的3个future builder的结构是这样的:

FutureBuilder(
future: getData(), //Fetch the data
builder:
    (context, AsyncSnapshot snapshot) {
  if (snapshot.connectionState == ConnectionState.done) {
    return Text('${snapshot.data}',
        style: const TextStyle(
            fontSize: 15,
            color: Colors.black));
  } else {
    return const CircularProgressIndicator.adaptive();
  }
})

如果您只想重建屏幕的一部分,您可以使用StatefulBuilder。用StatefulBuilder包装您想要重建的单个FutureBuilder,如下所示:

StatefulBuilder(
 builder: (context, setState) {
  return YourFutureBuilder();
 },
)

如果从StatefulBuilder内部调用setState,则只有用StatefulBuilder包装的屏幕部分将被重建。

Setstate将始终重新构建您的页面。请使用一些状态管理插件,如getx,provider来更新某些部分。

相关内容

  • 没有找到相关文章

最新更新