【问题标题】:FutureBuilder keeps Firing the Future methodFutureBuilder 不断触发 Future 方法
【发布时间】:2021-07-31 01:57:23
【问题描述】:

我从http请求中获取数据,然后我使用futureBuilder加载它,问题是即使我在'initState()'中使用future方法设置了一个变量,它仍然会调用future方法,但它仍然会继续调用它多次,我也尝试了 AsyncMemoizer 但没有用,这里是代码: my FutureBuilder

future method and iniState

Http request method

home screen build

我希望有人帮助我解决问题。

剩下的代码如下:

launcher screen build

connection method

【问题讨论】:

    标签: flutter httprequest mobile-development flutter-futurebuilder


    【解决方案1】:

    Futurebuilder 小部件取决于未来。因为,您还没有展示我无法确定的构建方法。但是,我认为您已经从 Build 方法中调用了 ma​​inWidget() Future。因此,每当您的构建方法被重新渲染或调用时,您的 ma​​inWidget() 也会被调用,您的 FutureBuilder 小部件及其未来也会被调用。

    因此,您需要确保您的 ma​​inWidget() 不会被多次调用。或者以您的 FutureBuilder 不需要多次调用的方式管理您的构建小部件。

    要检查,只需在您的 ma​​inWidget() 中添加一个打印日志,它是否被多次调用。

    我认为这将解决您的问题。

    【讨论】:

    • 谢谢,是的,构建函数被多次调用,导致其他小部件出现相同的行为,我会尝试解决这个问题。
    • 我仍然无法解决问题,我从一个检查连接的启动器调用此屏幕,但我不知道为什么它多次调用主屏幕,我添加了缺少的代码。
    • @KaneDavid 如果您为所有方法添加打印日志或调试每个执行点,将帮助您弄清楚为什么您的“Build”方法或“mainWidget()”被多次调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 2018-12-25
    • 2020-01-07
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    相关资源
    最近更新 更多