由于腳手架的原因,底部的導航欄沒有反應,App UI剛剛進入了一個while loop。 1:出現了我所做的回圈進展 2:我應該在這周給這個應用程式 3:我是flutter的新手
所以我想問問大家,也許有人能向我解釋為什么會出現這種錯誤,它意味著什么,以及如何擺脫它。對于這個問題有什么答案嗎?
import 'package:MeeM/pages/notification.dart'。
import 'package:MeeM/pages/user.dart'。
import 'package:flutter/material.dart';
import 'package:MeeM/pages/Home.dart'。
import 'package:MeeM/pages/search.dart'。
import 'package:MeeM/add/add.dart'。
import 'package:MeeM/profileUI/profile.dart'。
import 'package:MeeM/pages/signup_page.dart';
// ignore: camel_case_types.
class nav extends StatefulWidget{
@override
_navState createState() => _navState()。
}
//忽略:camel_case_types。
class _navState extends State< nav> {
int _currentindex = 0;
List<Widget> _widgeroption = <Widget>[
Home(currentUser: currentUser),
搜索()。
add(currentUser: currentUser),
通知()。
profile(profileId: currentUser?.id)。
];
void _onItemTap(int index) {
setState(() {
_currentindex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
體。IndexedStack(
索引。_currentindex,
兒童。_widgeroption,
),
BottomNavigationBar: BottomNavigationBar(
高度。0,
型別。BottomNavigationBarType.fixed,
backgroundColor: Colors.white,
專案。const <BottomNavigationBarItem>[
BottomNavigationBarItem(
//忽略: deprecated_member_use
圖示。Icon(
Icons.home_outlined,
color: Colors.black,
大小。30。
),
標簽。'home'。
),
BottomNavigationBarItem(
// ignore: deprecated_member_use
圖示。Icon(
Icons.search,
color: Colors.black,
大小。30。
),
標簽。'search'。
),
BottomNavigationBarItem(
// ignore: deprecated_member_use
圖示。Icon(
Icons.add_box_outlined,
color: Colors.black,
大小。30。
),
標簽。'upload'。
),
底部導航欄專案(
圖示。Icon(
Icons.notifications_none_outlined,
color: Colors.black,
大小。30。
),
標簽。'feed'。
),
BottomNavigationBarItem(
// ignore: deprecated_member_use
圖示。Icon(
Icons.person,
color: Colors.black,
大小。30。
),
標簽。'profile'。
),
],
showSelectedLabels: false。
showUnselectedLabels: false。
currentIndex。_currentindex,
onTap: _onItemTap,
),
);
}
}
~~~!
uj5u.com熱心網友回復:
我認為這可能是您在_widgeroption中的Child組件的錯誤。例如,檢查您是否使用了兩個相同的部件(如Expanded部件)作為嵌套部件。
如果沒有,這可能是由于Flutter的快取程序造成的。做這些步驟:
flutter clean并按回車鍵。flutter pub getflutter run更多資訊見這個.
。uj5u.com熱心網友回復:
你必須替換這個:
body: IndexedStack(
索引。_currentindex,
children: _widgeroption,
),
通過這個:
body: IndexedStack(
索引。_currentindex,
children: <Widget>[
Home(currentUser: currentUser),
搜索()。
add(currentUser: currentUser),
通知()。
profile(profileId: currentUser?.id)。
],
),
當你呼叫setState時,children中的部件必須重建,但是預定義的_widgeroption不能重建,因為它在build方法之外。
你也可以在build方法中定義_widgeroption來使其發揮作用:
[...] 。
@override
Widget build(BuildContext context) {
List<Widget> _widgeroption = <Widget>[
Home(currentUser: currentUser),
搜索()。
add(currentUser: currentUser),
通知()。
profile(profileId: currentUser?.id)。
];
return Scaffold(
[...]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/321927.html
標籤:
上一篇:如何為一個只獲取的屬性賦值
