Аргументы, переданные на страницу с помощью onGenerateRoute, недоступны после горячего перезапуска в flutter web

#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 становится нулевым, вы можете использовать общие предпочтения для хранения ваших данных.