gpt4 book ai didi

flutter - 将变量传递给 Stateful 类之外的 Widget

转载 作者:IT王子 更新时间:2023-10-29 07:18:39 24 4
gpt4 key购买 nike

将变量 (photoUrl) 传递给 Widget 的最佳方式是什么?在状态类中添加小部件它说:在初始化程序中只能访问静态成员。

将方法更改为静态都不能解决我的问题。

class _ABState extends State<AB> {
int _selectedPage = 0;
String photoUrl; /* Value set in initState()*/

/* To switch between pages */
final _pageOptions = [
Text('Page 1'),
accountPage(), /* Page 2 */
];

@override
Widget build(BuildContext context) {
return Scaffold(
body: _pageOptions[_selectedPage],
);
}
}

/* Widget outside class requires photoUrl */
Widget accountPage() {
return Container(
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(photoUrl),
),
),
);
}

最佳答案

您在初始化程序中调用了 accountPage(),但是 photoUrl 仅在 initState() 上设置,所以即使 accountPage() 可以访问 photoUrl,它会得到错误的值。

我建议如下:

class _ABState extends State<AB> {
int _selectedPage = 0;
String photoUrl;
List<Widget>_pageOptions;

@override
void initState() {
super.initState();
photoUrl = "<PLACE_YOUR_VALUE>";
_pageOptions = [
Text('Page 1'),
accountPage(photoUrl),
];
}

@override
Widget build(BuildContext context) {
return Scaffold(
body: _pageOptions[_selectedPage],
);
}
}

Widget accountPage(String photoUrl) {
return Container(
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(photoUrl),
),
),
);
}

关于flutter - 将变量传递给 Stateful 类之外的 Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56502303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com