Flutter 小部件无法在初始化程序中访问

时间:2021-05-19 15:52:08

标签: flutter

错误无法在初始化程序中访问实例成员 widget

class Home extends StatefulWidget {
          final List<NameModel> nameModel;
          Home({Key key,this.nameModel}):super(key: key);
        
          
          @override
          _HomeState createState() => _HomeState();
          
        }
        
        class _HomeState extends State<Home>with SingleTickerProviderStateMixin {
          
        
         
     final List <Widget>pagesList=[FirstPage(nameModel2:widget.nameModel),Center(child: Text("home1"),),Center(child: Text("home2"),)];

1 个答案:

答案 0 :(得分:0)

关键字 widget 仅在您的 StatefulWidgetState 类创建后才可用。

因此您不能直接在 initializer 中使用它们,因为它是一个 instance 变量。

因此,请在您的 pagesList 函数中初始化您的 initState

class _HomeState extends State<Home>with SingleTickerProviderStateMixin {

  List <Widget> pagesList;

  @override
  void initState() {
    super.initState();
    pagesList = [FirstPage(nameModel2: widget.nameModel), Center(child: Text("home1")), Center(child: Text("home2"))];
  }