[英]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.