Как исправить ошибку FutureBuilder, открытую несколько раз? - PullRequest
0 голосов
/ 18 апреля 2019

это мои два занятия (две страницы). эти два класса открываются несколько раз. Я ставлю точку отладки в будущем в двух классах. точка отладки работает,

  1. ГлавнаяКатегория и переход на следующую страницу
  2. Страница подкатегории и снова запущенная страница MainCategory (предыдущая страница) futurebuilder и снова запускающая страницу главной категории futurebuilder
  3. перейти на страницу подкатегории к третьей странице, на которой запущена страница подкатегории и страница главной категории

Я загружаю два своих класса в GitHub и, пожалуйста, дайте мне знать, в чем проблема.

Код основной категории: https://github.com/bhanuka96/ios_login/blob/master/MainCategory.dart Код подкатегории: https://github.com/bhanuka96/ios_login/blob/master/subCategory.dart

1 Ответ

0 голосов
/ 18 апреля 2019

Как указано в документации, вы не должны извлекать Future для Futurebuilder во время события сборки виджета.

https://docs.flutter.io/flutter/widgets/FutureBuilder-class.html

Будущее должно быть получено раньше, например, в течение State.initState, State.didUpdateConfig или State.didChangeDependencies. Он не должен быть создан во время Вызов метода State.build или StatelessWidget.build при создании FutureBuilder. Если будущее создается одновременно с FutureBuilder, то каждый раз, когда родитель FutureBuilder перестраивается, асинхронная задача будет перезапущена.

Итак, попробуйте переместить ваш вызов метода getRegister за пределы метода сборки и заменить его возвращенным значением Future.

...