0

我试图重建这个视频的代码(https://www.youtube.com/watch?v=d5PpeNb-dOY),这是关于如何将一个String值复制到另一个StatefulWidget,但现在我得到了BodyConstructionState(value) 红色下划线,它说“位置参数太多:预期为 0,但找到了 1。Value来自另一个小部件。我不知道为什么,因为我的做法和视频中的那个人一样。谁能告诉我我的错误是什么?提前致谢!

class BodyConstruction extends StatefulWidget {

      String value;
      BodyConstruction({Key key, @required this.value}) : super(key : key);


      @override
      _BodyConstructionState createState() => _BodyConstructionState(value);
    }

    class _BodyConstructionState extends State<BodyConstruction> {

      String value;
      _BodyConstructionState({this.value});
4

2 回答 2

0

当您创建 的对象时BodyContruction,您应该这样做

BodyConstruction object = new BodyConstruction(value: "Some Value");

并不是

BodyConstruction object = new BodyConstruction("Some Value");

创建构造函数参数{}使它们命名为可选参数。

注意:new键盘在 Dart 中是可选的。

于 2020-05-02T17:16:34.153 回答
0

这将完美地工作。看看这个。

   // declare a body construction object
   BodyConstruction _bodyConstruction;

   // initialise the object declared above
   _bodyConstruction = BodyConstruction(value: 'Your Value');

注意:{}在构造函数或方法体中使用时,表示命名参数。查看官方文档以获得更多解释。

单击此处阅读有关 Flutter 中命名参数的更多信息

于 2020-05-02T23:07:17.503 回答