Ошибка: у выражения функции не может быть имени. Navigator.pu sh (контекст, MaterialPageRoute (построитель: контекст) {^^^^^^^^^^^^^^^^^ - PullRequest
0 голосов
/ 19 марта 2020

Я получаю это исключение при попытке перейти на другую страницу, используя Navigator.of(context).push():

lib / main.dart: 20: 41: Ошибка: выражение функции не может есть имя Navigator.pu sh (context, MaterialPageRoute (построитель: context) {^^^^^^^^^^^^^^^^^ lib / main.dart: 20: 68: ошибка: не является константным выражением. Navigator.pu sh (context, MaterialPageRoute (builder: context) {^^^^^^^ lib / main.dart: 20: 66: ошибка: необязательные параметры не могут иметь значение по умолчанию. Попробуйте удалить значение по умолчанию. значение по умолчанию или необязательный параметр. Navigator.pu sh (context, MaterialPageRoute (builder: context) {^ lib / main.dart: Ошибка: тип аргумента 'HomePage Function (dynamici c)' не может быть назначен типу параметра «Маршрут».

Код:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Are You Present?',
        debugShowCheckedModeBanner: false,
        home: Scaffold(
          body: Center(
            child:
                FlatButton(onPressed: () {
                  Navigator.of(context).push(
                    MaterialPageRoute(builder: context){
                      return HomePage();
                    }
                  );
                }, child: Text("Press to Continue")),
          ),
        ));
  }
}

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Это правильный способ использования Navigator.of(context).push():

Попробуйте изменить код внутри onPressed с помощью следующего

Navigator.of(context).push(MaterialPageRoute(
            builder: (context){
              return HomePage();
            }
          ));
0 голосов
/ 19 марта 2020
Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) {
                return Demo();
              },
            ),
          );

строитель принимает функцию в качестве входных данных, и мы предоставили анонимную функцию, имеющую параметр в качестве текущего context , и мы вернули класс, который мы хотим поместить в стек sh, если кнопка нажата.

...