首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >位置参数必须发生在命名参数之前&太多的位置参数错误

位置参数必须发生在命名参数之前&太多的位置参数错误
EN

Stack Overflow用户
提问于 2022-01-25 08:42:22
回答 1查看 675关注 0票数 0

我试图解决这两个问题,但却找不到解决办法:

  • 太多的位置参数:0预期,但1找到。尝试删除额外的位置参数,或者指定命名的arguments.dart(extra_positional_arguments_could_be_named)
  • Positional参数的名称必须发生在命名参数之前。尝试在命名的arguments.dart(positional_after_named_argument)

之前移动所有位置参数

代码语言:javascript
运行
复制
    Padding(
      padding: const EdgeInsets.only(top: 15.0, bottom: 15.0),
      child: TextField(
        controller: phoneController,
        keyboardType: TextInputType.phone,
        decoration: InputDecoration(
            labelText: 'Phone Number',
            border: OutlineInputBorder(
                borderRadius: BorderRadius.circular(5.0)
            )
        ),
        onChanged: (value){

        },
      )
  ),
    Padding(
        padding: const EdgeInsets.only(top:15.0, bottom: 15.0),
        child: Row(
          children: <Widget>[
            Expanded(
              child: RaisedButton(
                color:Theme.of(context).primaryColorDark,
                textColor: Theme.of(context).primaryColorLight,
                child: const Text(
                  'Save',
                  textScaleFactor: 1.5,
                ),
                onPressed: (){
                  if(contact == null){
                    // add data
                    contact = Contact(nameController.text,phoneController.text);
                  }else{
                    //edit data
                    contact.name = nameController.text;
                    contact.phone = phoneController.text;
                  }

                  Navigator.pop(context, contact);
                },
              ),
            ),
            Container(width: 5.0),
            Expanded(
              child: RaisedButton(
                color: Theme.of(context).primaryColorDark,
                textColor: Theme.of(context).primaryColorLight,
                child: const Text(
                  'Cancel',
                  textScaleFactor: 1.5,
                ),
                onLongPress: (){
                  Navigator.pop(context);
                }, onPressed: () {  },
              ),
            ),
          ],
        )
    )
EN

回答 1

Stack Overflow用户

发布于 2022-01-25 14:06:13

您的错误消息已经为您提供了如何解决该问题的提示:

代码语言:javascript
运行
复制
"Positional arguments must occur before named arguments & Too many positional arguments"

第一部分:位置参数必须发生在命名参数之前

代码语言:javascript
运行
复制
// Where you defined your method
myMethod(positionalParameter1, positionalParameter2, name: namedParameter1) {}

// Where you use it (where the error occurs)
onPressed: myMethod(name: namedParameter1, positionalParameter1, positionalParameter2)

// Solution, assign them in the correct order :)  
onPressed: myMethod(positionalParameter1, positionalParameter2, name: namedParameter1)

第二部分:太多的位置参数

代码语言:javascript
运行
复制
// Where you defined your method
myMethod(positionalParameter1) {}

// Where you use it (where the error occurs)
onPressed: myMethod(positionalParameter1, positionalParameter2)

// Solution: Don´t assign to many parameters or make sure you defined all of them.

FYI:这也可以应用于类及其构造函数参数/参数!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70845660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档