首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >颤振-在传递数据时不能修改不可修改的地图,直到

颤振-在传递数据时不能修改不可修改的地图,直到
EN

Stack Overflow用户
提问于 2022-09-02 15:24:02
回答 1查看 95关注 0票数 1

在使用popUntil方法时,当我试图将数据传递到先前的屏幕时,我收到了以下错误。无法理解错误发生的原因:

代码语言:javascript
运行
复制
[VERBOSE-2:ui_dart_state.cc(198)] Unhandled Exception: Unsupported operation: Cannot modify unmodifiable map

以下是我遵循的步骤:

1)路由器:

代码语言:javascript
运行
复制
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)推屏:

代码语言:javascript
运行
复制
 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)处理从推送屏幕返回的数据:

代码语言:javascript
运行
复制
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;
                        }

在步骤3中,下面的代码块中,我面临着这个错误:

详细-2:ui_dart_state.cc(198)未处理异常:不支持的操作:无法修改不可修改的映射

这里是发生此错误的代码块(在步骤3中)

代码语言:javascript
运行
复制
(route.settings.arguments as Map)[IS_LOGIN_COMPLTED] = true;
EN

回答 1

Stack Overflow用户

发布于 2022-09-02 18:42:57

解决了。确保屏幕上弹出的settings不具有const

在下面的代码中从const键中删除用户将弹出的密钥。

代码语言:javascript
运行
复制
 case HomeViewRoute:
      return MaterialPageRoute(
        builder: (context) => HomePage(),
        settings: RouteSettings(name: HomeViewRoute, arguments:  {}),
      );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73584833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档