如何修复此错误:您尝试在没有 GetMaterialApp 或 Get.key 的情况下使用无上下文导航

问题描述 投票:0回答:2

您正在尝试使用无上下文导航,而无需 GetMaterialApp 或 Get.key。 如果您正在测试您的应用程序,您可以使用: [Get.testMode = true],或者如果您正在运行应用程序 物理设备或模拟器,您必须交换您的 [MaterialApp] 对于 [GetMaterialApp]。

这是我按下按钮时收到的错误。我怎样才能修复这个错误并使按钮正常工作。

代码:

import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart';
import 'package:hetmaantje/constants.dart';
import 'package:hetmaantje/quiz_screen.dart';

class welcome_screen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          SvgPicture.asset("assets/icons/bg.svg", fit: BoxFit.fill),
          SafeArea(
            child: Padding(
              padding: const EdgeInsets.symmetric(horizontal: kDefaultPadding),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Spacer(flex: 2), //2/6
                  Text(
                    "Let's Play Quiz,",
                    style: Theme.of(context).textTheme.headline4?.copyWith(
                        color: Colors.pink.shade100, fontWeight: FontWeight.bold),
                  ),
                  Text("Enter your informations below"),
                  Spacer(), // 1/6
                  TextField(
                    decoration: InputDecoration(
                      filled: true,
                      fillColor: Color(0xFF1C2341),
                      hintText: "Full Name",
                      border: OutlineInputBorder(
                        borderRadius: BorderRadius.all(Radius.circular(12)),
                      ),
                    ),
                  ),
                  Spacer(), // 1/6
                  InkWell(
                    onTap: () => Get.to(quiz_screen()),
                    child: Container(
                      width: double.infinity,
                      alignment: Alignment.center,
                      padding: EdgeInsets.all(kDefaultPadding * 0.75), // 15
                      decoration: BoxDecoration(
                        gradient: kPrimaryGradient,
                        borderRadius: BorderRadius.all(Radius.circular(12)),
                      ),
                      child: Text(
                        "Lets Start Quiz",
                        style: Theme.of(context)
                            .textTheme
                            .button
                            ?.copyWith(color: Colors.black),
                      ),
                    ),
                  ),
                  Spacer(flex: 2), // it will take 2/6 spaces
                ],
              ),
            ),
          ),
        ],
      ),
    );
  }
}
```
android ios flutter button navigation
2个回答
9
投票

在您的

main.dart
文件中,将
MaterialApp
替换为
GetMaterialApp

@override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      //
    );
}

查看 Getx 包文档的步骤 1 文档链接


0
投票

但是如果我使用 GetMaterialApp.router 它会显示此错误] 未处理的异常:您正在尝试使用无上下文导航而无需 E/flutter (17576):GetMaterialApp 或 Get.key。 E/flutter (17576):如果您正在测试您的应用程序,您可以使用: E/flutter (17576): [Get.testMode = true],或者如果您正在运行应用程序 E/flutter (17576):物理设备或模拟器,必须交换你的[MaterialApp] E/flutter (17576):用于 [GetMaterialApp]。

© www.soinside.com 2019 - 2024. All rights reserved.