我在Flutter应用程序中有两个屏幕:记录列表和创建和编辑记录的屏幕。
如果我传递一个对象到第二个屏幕,这意味着我将编辑这个,如果我传递null,这意味着我正在创建一个新项目。编辑屏幕是一个有状态的小部件,我不确定如何使用这种方法https://flutter.io/cookbook/navigation/passing-data/。
class RecordPage extends StatefulWidget {
final Record recordObject;
RecordPage({Key key, @required this.recordObject}) : super(key: key);
@override
_RecordPageState createState() => new _RecordPageState();
}
class _RecordPageState extends State<RecordPage> {
@override
Widget build(BuildContext context) {
//.....
}
}
我怎么能访问recordObject内_RecordPageState?
我必须导航回到列表页面中的任何一个屏幕,但当我这样做时,我的onTap功能停止工作,导航停止。
class MyBar extends StatefulWidget {
MyBar({this.pageNumber});
final pageNumber;
static const String id = 'mybar_screen';
@override
_MyBarState createState() => _MyBarState();
}
class _MyBarState extends State<MyBar> {
final List pages = [
NotificationScreen(),
AppointmentScreen(),
RequestBloodScreen(),
ProfileScreen(),
];
@override
Widget build(BuildContext context) {
var _selectedItemIndex = widget.pageNumber;
return Scaffold(
bottomNavigationBar: BottomNavigationBar(
elevation: 0,
backgroundColor: Colors.white,
unselectedItemColor: Colors.grey.shade700,
selectedItemColor: Color(kAppColor),
selectedIconTheme: IconThemeData(color: Color(kAppColor)),
currentIndex: _selectedItemIndex,
type: BottomNavigationBarType.fixed,
onTap: (int index) {
setState(() {
_selectedItemIndex = index;
});
},