Android Dart导航器不提供任何错误

Android Dart导航器不提供任何错误,android,sdk,dart,flutter,Android,Sdk,Dart,Flutter,我需要帮助,我正试图在按下按钮时显示新页面。我得到以下错误: I/flutter (31562): The following NoSuchMethodError was thrown while handling a gesture: I/flutter (31562): Class 'MyHomePage' has no instance getter 'context'. I/flutter (31562): Receiver: Instance of 'MyHomePage' I/flu

我需要帮助,我正试图在按下按钮时显示新页面。我得到以下错误:

I/flutter (31562): The following NoSuchMethodError was thrown while handling a gesture:
I/flutter (31562): Class 'MyHomePage' has no instance getter 'context'.
I/flutter (31562): Receiver: Instance of 'MyHomePage'
I/flutter (31562): Tried calling: context
I/flutter (31562): When the exception was thrown, this was the stack:
这是我的密码:

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class MyHomePage extends StatelessWidget{

  Container pictureSection(){
    return new Container(
      child: new Image.asset(
        'images/sw.jpeg',
        width: 600.0,
        height: 240.0,
        fit: BoxFit.cover,
      ),
    );
  }

  Container mainMenuSection(){
    var spacer = new SizedBox(height: 12.0);
    return new Container(
      child: new Column(
        children: <Widget>[
          spacer,
          new RaisedButton(
            onPressed: () {Navigator.of(context).pushNamed('/PlanetsPage');},
            child: new Text('Get Planet'),
            ),
          spacer,
          ],
        ),
      );
  }

  @override
  Widget build(BuildContext context){
    var spacer = new SizedBox(height: 32.0);
    var spacer2 = new SizedBox(height: 15.0);
    return new Scaffold(
      body: new Center(
        child: new Column(
          children: <Widget>[
            pictureSection(),
            mainMenuSection(),
          ],
        ),
      ),
    );
  }
}

class PlanetsPage extends StatelessWidget{
  Widget build(BuildContext context){
    return new Scaffold(
      body: new Center(
        child: new Column(
          child: new Text('Hello World'),
        ),
      ),
    );
  }
}

void main(){
  runApp(new MaterialApp(
    home: new MyHomePage(),
    routes: <String, WidgetBuilder> {
      '/PlanetsPage': (BuildContext context) => new PlanetsPage(),
    },
  ));
}
导入'dart:convert';
进口“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
类MyHomePage扩展了无状态小部件{
容器图片区(){
退回新货柜(
子:新建Image.asset(
“images/sw.jpeg”,
宽度:600.0,
身高:240.0,
适合:BoxFit.cover,
),
);
}
容器维护操作(){
var垫片=新尺寸的盒子(高度:12.0);
退回新货柜(
子:新列(
儿童:[
垫片,
新升起的按钮(
onPressed:(){Navigator.of(context).pushNamed('/PlanetsPage');},
子项:新文本('Get Planet'),
),
垫片,
],
),
);
}
@凌驾
小部件构建(构建上下文){
var垫片=新尺寸的盒子(高度:32.0);
var间隔器2=新尺寸的盒子(高度:15.0);
归还新脚手架(
正文:新中心(
子:新列(
儿童:[
pictureSection(),
MainMenuAction(),
],
),
),
);
}
}
类PlanetsPage扩展了无状态小部件{
小部件构建(构建上下文){
归还新脚手架(
正文:新中心(
子:新列(
孩子:新文本(“你好世界”),
),
),
);
}
}
void main(){
runApp(新材料)PP(
主页:新建MyHomePage(),
路线:{
“/PlanetsPage”:(BuildContext上下文)=>new PlanetsPage(),
},
));
}

当按下按钮时,我试图从主页转到行星页面,而错误只在按下按钮时显示。我正在使用我的Hauwei Nova进行测试。

尝试通过
build
方法传递
BuildContext
,而不是使用
MyHomePage
context
成员。见下文:

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class MyHomePage extends StatelessWidget{

  Container pictureSection(){
    return new Container(
      child: new Image.asset(
        'images/sw.jpeg',
        width: 600.0,
        height: 240.0,
        fit: BoxFit.cover,
      ),
    );
  }

  Container mainMenuSection(BuildContext context){
    var spacer = new SizedBox(height: 12.0);
    return new Container(
      child: new Column(
        children: <Widget>[
          spacer,
          new RaisedButton(
            onPressed: () {Navigator.of(context).pushNamed('/PlanetsPage');},
            child: new Text('Get Planet'),
            ),
          spacer,
          ],
        ),
      );
  }

  @override
  Widget build(BuildContext context){
    var spacer = new SizedBox(height: 32.0);
    var spacer2 = new SizedBox(height: 15.0);
    return new Scaffold(
      body: new Center(
        child: new Column(
          children: <Widget>[
            pictureSection(),
            mainMenuSection(context),
          ],
        ),
      ),
    );
  }
}

class PlanetsPage extends StatelessWidget{
  Widget build(BuildContext context){
    return new Scaffold(
      body: new Center(
        child: new Column(
          child: new Text('Hello World'),
        ),
      ),
    );
  }
}

void main(){
  runApp(new MaterialApp(
    home: new MyHomePage(),
    routes: <String, WidgetBuilder> {
      '/PlanetsPage': (BuildContext context) => new PlanetsPage(),
    },
  ));
}
导入'dart:convert';
进口“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
类MyHomePage扩展了无状态小部件{
容器图片区(){
退回新货柜(
子:新建Image.asset(
“images/sw.jpeg”,
宽度:600.0,
身高:240.0,
适合:BoxFit.cover,
),
);
}
容器MainMenuAction(构建上下文){
var垫片=新尺寸的盒子(高度:12.0);
退回新货柜(
子:新列(
儿童:[
垫片,
新升起的按钮(
onPressed:(){Navigator.of(context).pushNamed('/PlanetsPage');},
子项:新文本('Get Planet'),
),
垫片,
],
),
);
}
@凌驾
小部件构建(构建上下文){
var垫片=新尺寸的盒子(高度:32.0);
var间隔器2=新尺寸的盒子(高度:15.0);
归还新脚手架(
正文:新中心(
子:新列(
儿童:[
pictureSection(),
MainMenuAction(上下文),
],
),
),
);
}
}
类PlanetsPage扩展了无状态小部件{
小部件构建(构建上下文){
归还新脚手架(
正文:新中心(
子:新列(
孩子:新文本(“你好世界”),
),
),
);
}
}
void main(){
runApp(新材料)PP(
主页:新建MyHomePage(),
路线:{
“/PlanetsPage”:(BuildContext上下文)=>new PlanetsPage(),
},
));
}