扑/如何通过与Statefulwidget之间获取数据[复制](Flutter/ How to pa

2019-10-28 15:26发布

这个问题已经在这里有一个答案:

  • 从StatefulWidget外部控制国家 3回答

我是一个初中(或小于,只是1个月学习者)镖/扑开发商。 我尝试创建一个样本proflie应用程序了这 - 主屏幕上显示用户的个人资料图片。 - 用户可以使用应用程序内相机拍摄的照片或从相册中选择并显示为个人资料照片。

我已创建2个主要的viewController。

  1. main.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'.

能否请你告诉我?

最好的问候谢谢

Answer 1:

修改构造函数

MyApp的(this._images)

访问在MyHomePage类图像

widget._images



文章来源: Flutter/ How to pass and get data between Statefulwidget [duplicate]
标签: dart flutter