我有两个不同的页面。其中之一是一种形式,另一种是元素列表。如果您向左滑动元素之一,则可以进行编辑。我需要将元素数据(从列表中)发送到第一页(表单)
应用程序启动时,如果来自元素列表的数据不为空,则该数据为空。
导航条形码为:
import 'package:flutter/material.dart';
import 'package:datameter/screens/configuration/form/partials/home_page.dart';
import 'package:datameter/screens/configuration/list/datameters.dart';
import 'package:datameter/locations/locations.dart';
class Navigation extends StatefulWidget {
final item;
Navigation(
{Key key,
this.item})
: super(key: key);
@override
State<StatefulWidget> createState() {
return _NavigationState();
}
}
class _NavigationState extends State<Navigation> {
int currentIndex = 0;
List<Widget> children = [
HomePageScreen(datameter: widget.item), //ERRROR HERE
DatametersPageScreen(),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: children[currentIndex],
bottomNavigationBar: new Theme(
data: Theme.of(context).copyWith(
primaryColor: Colors.blue[700],
textTheme: Theme.of(context)
.textTheme
.copyWith(caption: new TextStyle(color: Colors.black)),
),
child: BottomNavigationBar(
onTap: onTabTapped,
currentIndex: currentIndex,
items: [
BottomNavigationBarItem(
icon: Icon(Icons.add),
title: Text(DemoLocalizations.of(context).text('new-device')),
),
BottomNavigationBarItem(
icon: Icon(Icons.list),
title: Text(DemoLocalizations.of(context).text('show-all')),
),
],
)),
);
}
void onTabTapped(int index) {
setState(() {
currentIndex = index;
});
}
}
当我尝试将元素列表(使用导航底部栏)中的参数发送到表单时,返回
仅静态成员可以加入初始化程序。
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
_NavigationState 未构造对象,因此您不能访问“ widget” getter,因为它不是静态属性。
更改
List<Widget> children = [
HomePageScreen(datameter: widget.item), //ERRROR HERE
DatametersPageScreen(),
];
到
List<Widget> _children() => [
HomePageScreen(datameter: widget.item),
DatametersPageScreen(),
];
然后在您进行更改
@override
Widget build(BuildContext context)
{
List<Widget> children = _children( );
return Scaffold
(
//code
body: children[currentIndex],
//code
)
}