我在类之间传递参数时遇到问题。当我想将电子邮件从 MyScreen 类传递到我的 TabScreen 时,它显示:
[State] 对象的配置是相应的 [StatefulWidget] 实例。该属性由框架在调用 [initState] 之前初始化。如果父级将树中的此位置更新为与当前配置具有相同 [runtimeType] 和 [Widget.key] 的新小部件,则框架将更新此属性以引用新小部件,然后调用 [didUpdateWidget],传递旧配置作为参数。
不确定如何处理将变量传递给状态类。我可以使用“${widget.email}”,但只能在小部件数组中使用。在列表选项卡内,我真的不知道如何。对于 flutter 的做事方式相当陌生......我在某个地方做错了吗?
import 'package:flutter/material.dart';
import 'package:my_helper/tab_screen2.dart';
import 'package:my_helper/tab_screen3.dart';
import 'tab_screen.dart';
class MainScreen extends StatefulWidget {
final String email; //<-managed to get this variable from previous screen
MainScreen({Key key,this.email}) : super(key: key);
@override
_MainScreenState createState() => _MainScreenState();
}
class _MainScreenState extends State<MainScreen> {
int currentTabIndex = 0;
List<Widget> tabs = [
TabScreen("Home", widget.email), //<- ERROR this widget.email shows error "only static member can be …
Run Code Online (Sandbox Code Playgroud) 我正在学习 GetX 状态管理并偶然发现 DropdownButton 小部件。无法观察到如何使用所选值更新所选值。这是我的 DropdownButton 小部件
DropdownButton(
hint: Text(
'Book Type',
),
onChanged: (newValue) {
print(newValue);
},
value: selectedType,
items: bookController.listType.map((selectedType) {
return DropdownMenuItem(
child: new Text(
selectedType,
),
value: selectedType,
);
}).toList(),
),
Run Code Online (Sandbox Code Playgroud)
这
var selectedType;
Run Code Online (Sandbox Code Playgroud)
在小部件构建中声明。我试图使这个变量可观察,但布局会引发溢出错误。我也用 obx 包装了小部件,但它仍然抛出相同的错误。这个小部件是如何使用 GetX 实现的。我在这里拉头发。我可以使用 getX 处理其他小部件。