首页 > 解决方案 > 如何在列表中使用变量?- 颤动

问题描述

我对颤动很陌生,现在我自己尝试了一段时间,但没有在网上或在我自己的技能范围内找到解决方案。问题:

list<Widget>sport = [sport1(name: name1)];

name是我在子小部件中使用的变量(如果我没记错的话是一个回调)。

name1是父项中的变量。

现在我想name 被改变,当我改变时name1

问题是,我不能name1在列表中使用。我不能在列表中使用任何变量。

错误:Can't access 'this' in a field initializer to read 'name1'

除了列表之外,我对我的子小部件没有任何其他访问权限sport1

代码:


void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  List<Widget> sport = [sport1(name: name1),];
  String name1 = 'Max';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Container(
        child: Scaffold(
          body: Center(child: sport[0]),),
        ),
      );
  }
}

class sport1 extends StatelessWidget {
  String name;
  sport1({Key key, this.name}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text('$name does x pushups!'),
    );
  }
}```

标签: listflutterdartvariables

解决方案


推荐阅读