Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在颤振中:必要的;“必需”;提取小部件时的关键字_Android_Flutter_Android Studio - Fatal编程技术网

Android 在颤振中:必要的;“必需”;提取小部件时的关键字

Android 在颤振中:必要的;“必需”;提取小部件时的关键字,android,flutter,android-studio,Android,Flutter,Android Studio,我正在开发一个应用程序,一开始我提取了一个小部件,使我的代码整洁有序 当我给构造函数参数时,它迫使我添加“required”关键字,这在之前是不必要的 我怎么能忽视它 class NewWidget extends StatelessWidget { NewWidget({this.text, this.onPress}); final String text; final Function onPress; @override Widget build(BuildCont

我正在开发一个应用程序,一开始我提取了一个小部件,使我的代码整洁有序

当我给构造函数参数时,它迫使我添加“required”关键字,这在之前是不必要的

我怎么能忽视它

class NewWidget extends StatelessWidget {
  NewWidget({this.text, this.onPress});
  final String text;
  final Function onPress;

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsets.all(15.0),
      child: Card(
        color: Colors.blueAccent,
        elevation: 5.0,
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(10.0),
        ),
        child: TextButton(
          child: Padding(
            padding: EdgeInsets.symmetric(vertical: 5.0, horizontal: 100.0),
            child: Text(
              text,
              style: TextStyle(
                fontSize: 32.0,
                color: Colors.white,
              ),
            ),
          ),
          onPressed: onPress(),
        ),
      ),
    );
  }
}
这是我收到的通知

由于其类型,参数“text”的值不能为“null”,但隐式默认值为“null”。尝试添加显式非“null”默认值或“required”修饰符


它来自Dart的安全性,您的两个参数被定义为不可为null的变量,但它们在构造函数中是可选的,这意味着编译器无法推断您的
文本
变量的类型是
String
还是
String?
,也无法确定
onPress
是否为
函数
功能?

您需要将参数作为
required
传递,或者将它们声明为可空,并检查它们是否为
null
。以下是两种情况的示例:

添加所需内容

class NewWidget扩展了无状态widget{
NewWidget({required this.text,required this.onPress});
最终字符串文本;
压力机的最终功能;
@凌驾
小部件构建(构建上下文){
返回填充(
填充:所有边缘设置(15.0),
孩子:卡片(
颜色:Colors.blueAccent,
标高:5.0,
形状:圆形矩形边框(
边界半径:边界半径。圆形(10.0),
),
孩子:文本按钮(
孩子:填充(
填充:边缘组。对称(垂直:5.0,水平:100.0),
子:文本(
文本,
样式:TextStyle(
字体大小:32.0,
颜色:颜色,白色,
),
),
),
onPress:onPress,
),
),
);
}
}
使用可为空的参数

class NewWidget扩展了无状态widget{
NewWidget({this.text,this.onPress});
最终字符串?文本;
最终功能?onPress;
@凌驾
小部件构建(构建上下文){
返回填充(
填充:所有边缘设置(15.0),
孩子:卡片(
颜色:Colors.blueAccent,
标高:5.0,
形状:圆形矩形边框(
边界半径:边界半径。圆形(10.0),
),
孩子:文本按钮(
孩子:填充(
填充:边缘组。对称(垂直:5.0,水平:100.0),
子:文本(
文本??“文本字符串为空”,
样式:TextStyle(
字体大小:32.0,
颜色:颜色,白色,
),
),
),
onPress:()=>onPress!(),
),
),
);
}
}

请共享您的代码,以便我们可以查看itI是否已共享。是的,现在命名参数应包含在dart的空安全版本中。但是,如果您希望它是可选的,请使用
最终字符串?文本
;没错,我希望它是可选的,这是有用的,但我还面临着其他一些问题。。我在“onPress”参数中添加的函数是navigator,但当我添加它时,它并没有进入distination页面!!!