В моем виджете есть ведьма StatefulWidget , моя логика проверяет токен, и в случае ошибки я перехожу на свою домашнюю страницу.

Я жду завершения сборки виджета с помощью этого метода:

WidgetsBinding.instance.addPostFrameCallback((_) {
    Navigator.pushNamed(context, '/');
});

Но проблема в том, что даже если я больше не буду фокусироваться на этом виджете, он все равно будет работать в фоновом режиме и делать перенаправление в цикле.

В моей логике я использую setState один раз , если мой accesToken истек. После этого виджет перестраивается, и я проверяю с помощью нового токена отправку моего сервера, и если он пуст, я перенаправляю моего пользователя на домашнюю страницу. Я думаю, что проблема исходит от setState.

Итак, есть ли способ убить или избавиться от этого виджета после ухода? Или, может быть, другой способ навигации?

1
Lab 2 Дек 2019 в 10:20

1 ответ

Поэтому я собираюсь ответить на свой вопрос, после нескольких тестов я нашел решение.

Я могу разорвать цикл, используя Navigator.popAndPushNamed (context, '/')); вместо pushNamed , он выведет маршрут из навигатора, и виджет будет перестаньте работать в фоновом режиме, когда родитель перестроится.

0
Lab 5 Дек 2019 в 08:31