【问题标题】:Dart, constructor with named parameters not working. Positional parameters expectedDart,具有命名参数的构造函数不起作用。预期的位置参数
【发布时间】:2020-07-04 22:27:57
【问题描述】:

我正在看一本书,我完全按照说明编写了代码。

 class Contato extends StatelessWidget{

  final String nome;
  final int idade;

  Contato(this.nome, this.idade){

  }

  Widget build(BuildContext buildContext){
    return Text('sou $nome minha idade e´ $idade');
  }

}

我这样创建这个类的一个实例:

  new Contato(nome: 'Monica Alves', idade: 32)

上面的代码给了我,两个位置参数预期,0找到。

【问题讨论】:

  • Contato({this.nome, this.idade})
  • 创建实例时删除参数名称。 new Contato('Monica Alves', 32)上面的解决方法也是对的。
  • 是的,@pskink 我没有看到花括号。你们期望我昨天才开始学习 Flutter/Dart。
  • “我昨天才开始学习 Flutter/Dart。” - 从这个开始:dart.dev/guides/language/language-tour

标签: flutter dart


【解决方案1】:

如果要为参数指定名称,请使用此

 class Contato extends StatelessWidget{

  final String nome;
  final int idade;

  Contato({this.nome, this.idade}){

  }

  Widget build(BuildContext buildContext){
    return Text('sou $nome minha idade e´ $idade');
  }

}

然后

new Contato(nome: 'Monica Alves', idade: 32)

如果你不想要命名参数使用这个

class Contato extends StatelessWidget{

  final String nome;
  final int idade;

  Contato(this.nome, this.idade){

  }

  Widget build(BuildContext buildContext){
    return Text('sou $nome minha idade e´ $idade');
  }

}

那么这个

  new Contato('Monica Alves', 32)

【讨论】:

    【解决方案2】:

    你可以这样改变你的班级:

     class Contato extends StatelessWidget{
    
      final String nome;
      final int idade;
    
      Contato({ this.nome, this.idade });
    
      Widget build(BuildContext buildContext){
        return Text('sou $nome minha idade e´ $idade');
      }
    }
    

    你可以像这样从类中创建一个对象:

    new Contato('Monica Alves', 32)
    

    new 关键字是可选的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-23
      • 2021-05-14
      • 2019-10-31
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2014-02-12
      相关资源
      最近更新 更多