flutter - Flutter - 在底部导航栏中发送参数
问题描述
我有两个不同的页面。其中一个是表单,另一个是元素列表。如果您向左滑动其中一个元素可以进行编辑。我需要将元素数据(来自列表)发送到第一页(表单)
当应用程序启动时,数据为空,如果它来自元素列表,则不为空。
导航条码为:
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;
});
}
}
当我尝试将参数从元素列表(使用导航底部栏)发送到表单时,返回
只能在初始化程序中访问静态成员。
有人知道如何解决这个问题吗?
解决方案
_NavigationState对象未构造,因此您无法访问“小部件”getter,因为它没有初始化,也不是静态属性。
改变
List<Widget> children = [
HomePageScreen(datameter: widget.item), //ERRROR HERE
DatametersPageScreen(),
];
至
List<Widget> _children() =>
[
HomePageScreen(datameter: widget.item),
DatametersPageScreen(),
];
然后在您的构建更改中
@override
Widget build(BuildContext context)
{
final List<Widget> children = _children();
return Scaffold
(
//code
body: children[currentIndex],
//code
);
}
推荐阅读
- macos - 错误:试图在 Elasticsearch 的快照版本上安装官方插件的发布版本
- javascript - 如何计算数组中出现的次数并将其转换为对象数组?
- c - 如何使用 ThrowTheSwitch 的 Unity C 单元测试库?
- java - 防止来自输入 url、java 的 XSS 攻击
- json - 在单个 JQ 运行中提取多个嵌套
- javascript - 如何在不从文本字段中获取输入的情况下制作快捷键
- ios - 使用自定义单元格类和目标 c 在 main.storyboard 中自定义 UITableVieCell
- unit-testing - 我们是否应该始终对特定值进行单元测试
- scala - 有比自定义迭代器更好的解决方案来处理分页吗?
- python - 在组合框中选择下拉列表后如何创建文本框