Flutter学习预坑指南

发布于 2019-11-09 15:15:34 阅读 210

今天学习flutter,但是在写组件的时候突然出现了

This class (or a class which this class inherits from) is marked as '@immutable', but one or more of its instance fields are not final:

WX20191109-151000@2x.png

代码如下:

class MyPersonalPage extends StatelessWidget {
  String userName;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('My '+ userName+'\'s Home Page')),
      body: ListView(
        children: <Widget>[
          Container(
            child: Text("sssss1"),
          ),
          Container(
            child: Text("sssss2"),
          ),
          Container(
            child: Text("sssss3"),
          ),
          Container(
            child: Text("sssss4"),
          ),
          Container(
            child: Text("sssss5"),
          ),
          RaisedButton(
              child: Text("返回", style: TextStyle(color: Colors.white)),
              color: Colors.green,
              onPressed: () {
                Navigator.pop(context);
              })
        ],
      ),
    );
  }
}

但是我在网上都没有找到对应的解决办法,但是我看了下官方的demo,发现了解决办法,就是在这个类中加入一个构造器即可,代码如下

class MyPersonalPage extends StatelessWidget {
  const MyPersonalPage({Key key, this.userName}) : super(key: key);
  final String userName;
   //..... your code
}

此时ide就不会出现刚刚的下划线了。

WX20191109-151434@2x.png