[英]The name 'MenuItem' is defined in the libraries cubit state and flutter_admin_scaffold
[具有可诊断性的抽象类 MenuItem,类 MenuItem] 名称“MenuItem”在库“package:flutter/src/widgets/platform_menu_bar.dart”和“package:flutter_admin_scaffold/src/menu_item.dart”中定义(通过 package:flutter_admin_scaffold/ admin_scaffold.dart)'。 尝试对其中一个导入指令使用“作为前缀”,或者对所有导入指令隐藏名称。dartambiguous_import 'MenuItem' 不是函数。 尝试更正名称以匹配现有函数,或定义名为 'MenuItem'.dartinvocation_of_non_function 的方法或函数
肘/肘
肘/州
flutter_admin_scaffold
错误消息:问题是AppLayout Class 和MenuItem (flutter_admin_scaffold)
请帮我找出问题并帮助我解决问题
import 'package:date_time_format/date_time_format.dart';
import 'package:flutter/material.dart';
import 'package:flutter_admin_scaffold/admin_scaffold.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_iconly/flutter_iconly.dart';
import 'cubit/cubit.dart';
import 'cubit/states.dart';
class AppLayout extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocConsumer<AppCubit, AppStates>(
listener: (context, state) {},
builder: (context, state) {
var cubit = AppCubit.get(context);
return AdminScaffold(
backgroundColor: Colors.white,
appBar: AppBar(
title: const Text('Electronic App Admin',style: TextStyle(letterSpacing: 1),),
),
sideBar: SideBar(
items: const [
MenuItem(
title: 'Dashboard',
route: 'DashBoardScreen',
icon: Icons.dashboard,
),
MenuItem(
title: 'Categories',
icon: IconlyLight.category,
children: [
MenuItem(
title: 'Category',
route: 'CategoryScreen',
),
MenuItem(
title: 'Main Category',
route: 'MainCategoryScreen',
),
MenuItem(
title: 'Sub Category',
route: 'SubCategoryScreen',
),
MenuItem(
title: 'Vendor',
route: 'VendorScreen',
icon: Icons.group_add_outlined,
),
],
),
],
selectedRoute: 'AppLayout',
onSelected: (item) {
AppCubit.get(context).screenSelector(item);
/*if (item.route != null) {
Navigator.of(context).pushNamed(item.route!);
}*/
},
header: Container(
height: 50,
width: double.infinity,
color: const Color(0xff444444),
child: const Center(
child: Text(
'Menu',
style: TextStyle(
color: Colors.white,
),
),
),
),
footer: Container(
height: 50,
width: double.infinity,
color: const Color(0xff444444),
child: Center(
child: Text(
'${DateTimeFormat.format(DateTime.now(),format: AmericanDateFormats.dayOfWeek)}',
style: TextStyle(
color: Colors.white,
),
),
),
),
),
body: SingleChildScrollView(
child: AppCubit.get(context).selectorScreen,
),
);
},
);
}
}
冲突发生在platform_menu_bar
和flutter_admin_scaffold/src/menu_item
您可以使用as
前缀导入
import 'package:flutter_admin_scaffold/admin_scaffold.dart' as adminScf;
要使用它的组件,请使用adminScf.
adminScf.AdminMenuItem(
title: 'Dashboard',
route: 'DashBoardScreen',
icon: Icons.dashboard,
),
MenuItem
是一个抽象类(在颤振源代码上),不能直接在SideBar
的items
中使用。
尝试升级您的软件包,您可以直接使用来自AdminMenuItem
的flutter_admin_scaffold
,无需任何前缀。
sideBar: SideBar(
items: [
AdminMenuItem(
title: 'Dashboard',
route: 'DashBoardScreen',
icon: Icons.dashboard,
),
在最后一个片段中,我使用的是flutter_admin_scaffold: ^1.1.1
测试小部件
import 'package:flutter/material.dart';
import 'package:flutter_admin_scaffold/admin_scaffold.dart';
void main() {
runApp(MaterialApp(
home: TestCW(),
));
}
class TestCW extends StatefulWidget {
const TestCW({Key? key}) : super(key: key);
@override
State<TestCW> createState() => _TestCWState();
}
class _TestCWState extends State<TestCW> {
@override
Widget build(BuildContext context) {
return AdminScaffold(
backgroundColor: Colors.white,
appBar: AppBar(
title: const Text(
'Electronic App Admin',
style: TextStyle(letterSpacing: 1),
),
),
body: SingleChildScrollView(
child: Text(""),
),
sideBar: SideBar(
items: [
AdminMenuItem(
title: 'Dashboard',
route: 'DashBoardScreen',
icon: Icons.dashboard,
),
AdminMenuItem(
title: 'Categories',
children: [
AdminMenuItem(
title: 'Category',
route: 'CategoryScreen',
),
],
),
],
selectedRoute: 'AppLayout',
onSelected: (item) {},
header: Container(
height: 50,
width: double.infinity,
color: const Color(0xff444444),
child: const Center(
child: Text(
'Menu',
style: TextStyle(
color: Colors.white,
),
),
),
),
footer: Container(
height: 50,
width: double.infinity,
color: const Color(0xff444444),
child: Center(),
),
),
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.