#flutter #arguments #flutter-web #reload
#трепетать #аргументы #трепещущая паутина #перезагрузить
Вопрос:
Я ввел следующий код в именованный параметр onGenerateRoute в функции приложения material:
onGenerateRoute: (RouteSettings settings) { print('build route for ${settings.name}'); var routes = lt;String, WidgetBuildergt;{ routing.chapterScreenID: (context) =gt; ChapterScreen( chapterMetaData: settings.arguments as Maplt;String, dynamicgt;?), }; WidgetBuilder builder = routes[settings.name]!; return MaterialPageRoute(builder: (context) =gt; builder(context)); },
В отдельном файле dart я объявил класс ChapterScreen.
class ChapterScreen extends StatefulWidget { final Maplt;String, dynamicgt;? chapterMetaData; ChapterScreen({Key? key, @required this.chapterMetaData}) : super(key: key); //const ChapterScreen({Key? key}) : super(key: key); @override _ChapterScreenState createState() =gt; _ChapterScreenState(); }
Я получаю доступ к виджету.chapterMetaData! внутри виджета унаследованного состояния, который отлично работает в обычном случае использования.
Но когда я изменяю какой-то код и сохраняю его, flutter-web выполняет горячий перезапуск, и аргумент chapterMetaData становится нулевым. Есть ли какой-либо способ сделать аргумент постоянным с помощью горячих перезапусков flutter? Проблема возникает и при перезагрузке веб-страницы.
Комментарии:
1. он не сохранил ваши данные в кэше, поэтому при повторной загрузке аргумент chapterMetadata становится нулевым, вы можете использовать общие предпочтения для хранения ваших данных.