Flutter go路由器将动态列表传递给参数

9udxz4iz  于 2023-02-16  发布在  Flutter
关注(0)|答案(1)|浏览(96)

我正在使用go router的flutter应用程序,我可以在活动和它的工作之间传递字符串参数,现在我想传递列表动态和得到错误
参数类型“String”不能赋给参数类型“List”。(文档)
接收方活动具有

class EditUserPage extends StatefulWidget {
  final String name;
  final List<dynamic> userinformation;
 
}

在路线建设者我已经通过我的数据如下

GoRoute(
            path: 'editusers',
            name:
                'editusers/:name,:userinformation,'
            builder: (BuildContext context, GoRouterState state) {
return EditUserPage(
 state.params["name"]!,
 state.params["userinformation"]!,
)
);

错误出现在此行**state.params[“userinformation”]!,**参数类型“String”不能赋给参数类型“List”。

sxpgvts3

sxpgvts31#

您可以使用此方法

第一步

class ScreenArguments{
  final Key? key;
  final List<dynamic> list;
  final DateTime dateTime;
  ScreenArguments({
    this.key,
    required this.list,
    required this.dateTime,
  });
}

第二步

builder: (context, state) {
            return Screen(
              arguments: state.extra as ScreenArguments,
            );
          },

第三步

final ScreenArguments arguments;
  const Screen({
    super.key,
    required this.arguments,
  });

第四步

context.pushNamed(
           'name',
    extra: ScreenArguments(
      list:list,
          dateTime: dateTime,
                           ),
                           );

相关问题