【问题标题】:Flutter/ How to pass and get data between Statefulwidget [duplicate]Flutter/如何在Statefulwidget之间传递和获取数据[重复]
【发布时间】:2018-10-19 02:21:23
【问题描述】:

我是一名初级(或不到 1 个月的学习者)飞镖/颤振开发人员。 我尝试创建一个示例配置文件应用程序 - 在主屏幕上显示用户的个人资料图像。 - 用户可以使用应用内的相机拍照或从相册中选择并显示为个人资料图片。

我已经创建了 2 个主视图控制器。

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

你能告诉我吗?

最好的问候 谢谢

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    将构造函数修改为

    我的应用程序(this._images)

    访问 MyHomePage 类中的图像

    widget._images

    【讨论】:

    • 感谢它现在有效,抱歉回复晚了。
    猜你喜欢
    • 2016-01-22
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2021-03-01
    相关资源
    最近更新 更多