i am receiving following error while I try to pass data to previous screen when using popUntil method. Can't understand why the error is happening:
[VERBOSE-2:ui_dart_state.cc(198)] Unhandled Exception: Unsupported operation: Cannot modify unmodifiable map
here is steps that I follow:
1) Router:
Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case LoginViewRoute:
String navigatedScreen = settings.arguments as String;
return MaterialPageRoute(
settings: RouteSettings(name: LoginViewRoute, arguments: Map()),
builder: (context) => LoginPage(
navigatedPage: navigatedScreen,
));
}
}
2) Pushing Screen:
Navigator.pushNamed(context, LoginViewRoute, arguments: HomeViewRoute).then((value) {
final arguments = ModalRoute.of(context)?.settings.arguments as Map;
bool result = arguments[IS_LOGIN_COMPLTED];
if (result) {
_bloc.onLoggedIn();
print(User().email);
}
});
3) Handling Returning Data from Pushed Screen:
Navigator.of(context).popUntil((route) {
if (route.settings.name == widget.navigatedPage) {
(route.settings.arguments as Map)[IS_LOGIN_COMPLTED] = true;
return true;
} else {
return false;
}
in step 3, following code block, i am facing that error:
[VERBOSE-2:ui_dart_state.cc(198)] Unhandled Exception: Unsupported operation: Cannot modify unmodifiable map
here is the code block where this error happens(in step 3):
(route.settings.arguments as Map)[IS_LOGIN_COMPLTED] = true;