Flutter: переменные сбрасываются до значений по умолчанию при переходе на другой экран - PullRequest
0 голосов
/ 19 июня 2020
• 1000 1003 *

Ответы [ 2 ]

3 голосов
/ 19 июня 2020

Я бы рекомендовал проверить официальную документацию Flutter - кстати, они отличные!

Добавление интерактивности в ваше приложение: https://flutter.dev/docs/development/ui/interactive

Использование SetState для управления состоянием вашего приложения: https://api.flutter.dev/flutter/widgets/State/setState.html

... и немного подробнее о State Management в Flutter: https://flutter.dev/docs/development/data-and-backend/state-mgmt

1 голос
/ 19 июня 2020

Чтобы иметь возможность правильно сохранять переменные, я предлагаю вам поискать архитектуру управления состоянием для вашего приложения. Это будет очень полезно в долгосрочной перспективе. Я лично предлагаю ProviderModel . Если вы не использовали это раньше, понять несложно.


УКАЗАННЫЙ НИЖЕ СПОСОБ НЕ ПРАВИЛЬНЫЙ СПОСОБ, КАК Я СКАЗАЛ ВЫШЕ, ДЛЯ ПРАВИЛЬНОГО ИСПОЛЬЗОВАНИЯ ГОСУДАРСТВЕННОЙ АРХИТЕКТУРЫ УПРАВЛЕНИЯ

НО если в каком-то случае вы не хотите этого делать. Вы можете создать объект класса с переменными-членами в качестве переменных, которые вы используете внутри виджета.

class CounterModel{
    int counter;
    CounterModel(){
        counter = 0;
    }
}

и onDispose внутри виджета вы можете сохранить копию этого объекта класса глобально. Объявите объект глобального класса, подобный этому

CounterModel model;

, и заполните его при удалении.

onDispose(){
    model = new CounterModel();
    model.counter = <currentCounter>;
    super.dispose();
}

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

НО НИКОГДА НЕ СЛЕДУЕТ ЭТО ДЕЛАТЬ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...