如何解决我正在尝试将屏幕上的多个数据传递给另一个屏幕,但它显示了无效的参数错误
你好,我试图将一个屏幕上的多个数据传递给另一个屏幕,但它显示了无效的参数错误。我不知道该错误发生在哪里。我提供了导航部件代码和其他活动部件代码。
=>“家庭活动”导航部件方法。
-这是导航方法。
getItemAndNavigation(BuildContext context){
Navigator.push(context,MaterialPageRoute(builder: (context)=>resultScanner(
scanResult: scannedResult,resultType: resultType,)));
}
=>这是我的第二个活动代码。
class resultScanner extends StatelessWidget {
final scanResult;
final resultType;
resultScanner({Key key,@required this.scanResult,this.resultType})
: super(key: key);
String currentTime = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.white,iconTheme: IconThemeData(
color: Colors.black,),title: Text(
"Result",style: TextStyle(color: Colors.black,fontWeight: FontWeight.bold),body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.start,children: <Widget>[
Text(
'Result type = ' + resultType,fontSize: 18.0),Text(
'Description = ' + scanResult,],)),);
}
}
=>这是显示的错误。
> The following ArgumentError was thrown building resultScanner(dirty,> state: _resultScannerState#7c9c8): Invalid argument(s)
>
> The relevant error-causing widget was: resultScanner
> file:///F:/Work/QReader/qreader/qreader/lib/screens/homeui.dart:458:34
> When the exception was thrown,this was the stack:
> #0 _StringBase.+ (dart:core-patch/string_patch.dart:267:57)
> #1 _resultScannerState.build (file:///F:/Work/QReader/qreader/qreader/lib/screens/result_scan.dart:46:30)
> #2 StatefulElement.build (package:flutter/src/widgets/framework.dart:4663:28)
> #3 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4546:15)
> #4 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
解决方法
这是因为尚未在第二个屏幕上定义类型。
class resultScanner extends StatelessWidget {
final scanResult;
final resultType;
}
将其更改为final String scanResult
和final String resultType
或者,也许无论您想要他们是什么。
打印语句中的此代码还有另一个问题:
Text(
'Result type = ' + resulType,style: TextStyle(color: Colors.black,fontSize: 18.0),),
应该是:
Text(
'Result type = $resultType'
style: TextStyle(color: Colors.black,
scanResult也一样。
,我有点惊讶它可以编译,但是您没有给变量提供任何类型。
因此,这一行基本上具有某种宗教信仰,因为所传递的变量可以与加号连接:
'Result type = ' + resultType,
给两个变量scanResult
和resultType
一个类型(也许它们是字符串?),然后找出简单加号是否是将它们与另一个字符串连接的正确方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。