Я получаю данные из http-запроса, а затем загружаю его с помощью futureBuilder, проблема в том, что он продолжает вызывать метод future, даже если я устанавливаю переменную с помощью метода future в ‘initState ()’, но он по-прежнему вызывает его несколько раз , я тоже пробовал AsyncMemoizer, но безуспешно, вот код: my FutureBuilder
Надеюсь, кто-нибудь поможет мне с решением.
вот остальная часть кода:
Виджет Futurebuilder зависит от будущего. Поскольку вы не показали свой метод сборки, я не могу точно предсказать. Но, я думаю, вы вызвали mainWidget () Future из своего метода сборки. Таким образом, всякий раз, когда вы создаете метод повторно отрисовывается или вызывается, также вызывается ваш mainWidget (), а также ваш виджет FutureBuilder и его будущее.
Итак, вам нужно убедиться, что ваш mainWidget () не вызывается много раз. Или управляйте своим виджетом сборки таким образом, чтобы ваш FutureBuilder не нужно было вызывать более одного раза.
Чтобы проверить, просто добавьте журнал печати в свой mainWidget (), чтобы он вызывал несколько раз или нет.
Думаю, это решит вашу проблему.
спасибо, да, функция сборки вызывалась несколько раз, вызывая такое же поведение для других виджетов, я постараюсь это исправить. — person Kane David; 09.05.2021
Я все еще не могу понять проблему, я вызываю этот экран из программы запуска, которая проверяет соединение, но я не знаю, почему он вызывает главный экран несколько раз, я добавил недостающий код. — person Kane David; 09.05.2021
@KaneDavid Если вы добавляете журналы печати для всех своих методов или отлаживаете каждую точку выполнения, это поможет вам выяснить, почему ваш метод Build или mainWidget () вызывается несколько раз. — person Kane David; 10.05.2021