Как создать экземпляр List только один раз во время выполнения (Flutter)? - PullRequest
0 голосов
/ 26 сентября 2019

Я написал страницу, где я могу добавить объекты.Теперь я также хочу иметь возможность удалять объекты.Но я всегда получаю ошибку, если пытаюсь удалить объект, после того, как я перешел на другую страницу (в нижней панели навигации) и обратно.Ошибка: setState() called after dispose(): _DevicesPageHeroState#09bb8(lifecycle state: defunct, not mounted).

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

class _DevicesPageHeroState extends State<DevicesPageHero> {
  List<String> newMatrixNames = ['Default'];
  static List<Matrix> matrixList = [
    Matrix(
        heroTag: 'm1',
        name: 'Matrix Kitchen',
        matrixIMG: 'imgs/matrix1.png',
        size: 10),
  ];

  static List<Widget> matrixCall = [
    MatrixPageOne(
      matrix: matrixList[0],
    )
  ];

Список matrixCall необходим, чтобы указать, какую страницу следует загрузить позже.я добавляю такой элемент:DevicesPageHero Я был бы очень счастлив.И извините, если я делаю что-то слишком сложное, только началось с кодирования

РЕДАКТИРОВАТЬ: Здесь шаг за шагом создается ошибка (извините за мои навыки рисования): Error Step by step И здесь точная ошибка: Error

1 Ответ

1 голос
/ 26 сентября 2019

Убедитесь, что вы проверяете состояние монтирования до того, как произойдет метод setState:

@override
void setState(fn) {
    if (mounted) {
      super.setState(fn);
    }
  }

Этот фрагмент поможет вам справиться с возникшей ошибкой.

...