无法访问小部件变量



我想把widget.token发送到User构造函数,但我不能,它显示了这个错误:

无法在初始值设定项中访问实例成员"widget"。尝试将对实例成员的引用替换为表达式

这是我的代码:

class HomeScreen extends StatefulWidget {
final String token;
const HomeScreen(this.token, {Key? key}) : super(key: key);

@override
createState() {
return HomeScreenState();
}
}

@override
class HomeScreenState extends State<HomeScreen> {
int _selectedIndex = 2;
static const TextStyle optionStyle =
TextStyle(fontSize: 30, fontWeight: FontWeight.bold);
static final List<Widget> _widgetOptions = <Widget>[
User(widget.token),
const Profile(),
News(),
SingleChildScrollView(
child: Search(),
),
ChartAl('null', 'Line'),
// Home(),
];

@override
Widget build(BuildContext context) {
.....
...
...
..

简单地说,您不能使用widget来初始化状态的属性。

您应该在initStatebuild函数中访问它。另一种可能性:

List<Widget> get _widgetOptions => <Widget>[
User(widget.token),
const Profile(),
News(),
SingleChildScrollView(
child: Search(),
),
ChartAl('null', 'Line'),
// Home(),
];

此外,您永远不能在静态上下文中访问实例变量。

相关内容

最新更新