dart - Flutter/StatefulWidget之间如何传递和获取数据
问题描述
我是一名初级(或不到 1 个月的学习者)飞镖/颤振开发人员。我尝试创建一个示例配置文件应用程序 - 在主屏幕上显示用户的个人资料图像。- 用户可以使用应用内的相机拍照或从相册中选择并显示为个人资料图片。
我创建了 2 个主视图控制器。
主要.dart
void main() { runApp(new MaterialApp( home: new MyApp(), routes: <String, WidgetBuilder>{ '/screen1': (BuildContext context) => new MyApp(), '/screen3': (BuildContext context) => new UploadAvatarButton() }, )); } class MyApp extends StatefulWidget { final String _images = ""; MyApp(String _images, {Key key}) : super(key: key); @override State<StatefulWidget> createState() { return new MyHomePage(); } } class MyHomePage extends State<MyApp> { @override Widget build(BuildContext context) { Widget myPhoto = new Container( //Attribute child: new FlatButton( child: new Container( decoration: new BoxDecoration( shape: BoxShape.circle, image: new DecorationImage( fit: BoxFit.cover, image: new AssetImage('images/sample.jpg')), ), ), onPressed: _showPersBottomSheetCallBack, ), ); return new MaterialApp( home: new Scaffold( //Header body: new Center( child: new Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ new Container(child: myPhoto),
和 2.cameraView.dart
class UploadAvatarButton extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new MakeUploadAvatarButtonState();
}
class MakeUploadAvatarButtonState extends State<UploadAvatarButton> {
File _image;
Future getImage() async {
var image = await ImagePicker.pickImage(source: ImageSource.camera);
setState(() {
_image = image;
//Try to send data or image back to main screen
List<int> imageBytes = image.readAsBytesSync();
String base64Image = BASE64.encode(imageBytes);
//send data back
Navigator.push(context, new MaterialPageRoute(builder: (_) =>
new MyApp(_image.)));
});
}
如您所见,我使用方法从相机发送回图像
List<int> imageBytes = image.readAsBytesSync();
String base64Image = BASE64.encode(imageBytes);
Navigator.push(context, new MaterialPageRoute(builder: (_) =>
new MyApp(_image.)));
在主要
final String _images = "";
MyApp(String _images, {Key key}) : super(key: key);
但是,我得到了错误
[dart] The constructor returns type 'dynamic' that isn't of expected type 'Widget'.
你能告诉我吗?
最好的问候谢谢
解决方案
将构造函数修改为
我的应用程序(this._images)
访问 MyHomePage 类中的图像
小部件._images
推荐阅读
- javascript - 单击 JavaScript 中的编辑按钮后,如何编辑 td?
- reactjs - 如何创建 id 并使用不同的 id 进行无限滚动
- python - 为什么这两个具有相同数据的seaborn图不相等?
- mysql - 选择特定列中只有一个值的行
- linux - Redis 4.0.10:为什么我们有 0 个键但数据集大小为 9GB?
- kotlin - Kotlin Multiplatform 项目的 iosMain 中的 Cocoapod 依赖项,cocoapod 未解析参考
- d3.js - d3.js:使用下拉选择器在分组条形图中添加图例
- unity3d - 我怎样才能有定向弹丸出来?
- c# - 为什么单击加载按钮时保存的游戏会加载两次?
- amazon-web-services - 当 ECS_IMAGE_PULL_BEHAVIOR 设置为首选缓存时,强制 ecs-agent 拉取图像