- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Getx 状态管理。我有一个登录屏幕及其 GetxController。在那个 GetxController 中,我定义了一个像这样的 FormKey final formKey = GlobalKey<FormState>();
当我从任何其他屏幕使用此 Get.offAllNamed(Routes.loginScreen);
直接导航回 LOGINSCREEN(用于注销)时我遇到了这个问题。
我试过了 flutter clean
, 但它不起作用。我似乎找不到解决方法。
如果有人能找到解决方案,那将是一个很大的帮助。
he following assertion was thrown building Form-[LabeledGlobalKey<FormState>#f1349](state: FormState#45516):
'package:flutter/src/widgets/will_pop_scope.dart': Failed assertion: line 135 pos 12: '_route == ModalRoute.of(context)': is not true.
2
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=2_bug.md
The relevant error-causing widget was
Form-[LabeledGlobalKey<FormState>#f1349]
lib\…\login_screen\login_screen.dart:40
When the exception was thrown, this was the stack
#2 _WillPopScopeState.didUpdateWidget
package:flutter/…/widgets/will_pop_scope.dart:135
#3 StatefulElement.update
package:flutter/…/widgets/framework.dart:4682
#4 Element.updateChild
package:flutter/…/widgets/framework.dart:3293
#5 ComponentElement.performRebuild
package:flutter/…/widgets/framework.dart:4520
#6 StatefulElement.performRebuild
package:flutter/…/widgets/framework.dart:4667
登录界面
class LoginScreen extends StatelessWidget {
final controller = Get.find<AuthController>();
@override
Widget build(BuildContext context) {
return Column(
children: [
Form(
key: controller.formKey,
child: Column(
children: [
TextFormField(
controller: controller.phoneController,
keyboardType: TextInputType.phone,
style: TextStyles.black14,
decoration: InputDecoration(
hintText: 'Phone Number',
hintStyle: TextStyles.hintStyle14,),
validator: (value) {
print(value);
if (value.length != 10) {
return 'Invalid phone number';
}
return null;
},
),
TextButton(
onPressed: () {
controller.login();
},
child: Text('Login'))
],
);
}
}
Controller
import 'package:app/routing/routes.dart';
import 'package:app/utilities/shared_prefs.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class AuthController extends GetxController {
//Handling loading state
bool loading = false;
final formKey = GlobalKey<FormState>();
login() async {
if (!formKey.currentState.validate()) return;
loading = true;
update();
//API CALL
}
//Sign out user
signOut() async {
SharedPrefs().clear();
Get.offAllNamed(Routes.loginScreen);
}
}
这是流程。登录屏幕 --> 主屏幕 --> 其他屏幕
调用 controller.signOut()
来自 OtherScreen 导致此错误
最佳答案
如果尝试重置全局 key ,则会发生这种情况。
要解决此问题,您可以将 GlobalKey 和 TextEditingController 移动到页面本身,而不是在 Controller 中声明它们。
class LoginScreen extends StatelessWidget {
final formKey = GlobalKey<FormState>();
TextEditingController phoneController = TextEditingController();
final controller = Get.find<AuthController>();
@override
Widget build(BuildContext context) {
return Column(
children: [
Form(
key:formKey,
child: Column(
children: [
TextFormField(
controller:phoneController,
keyboardType: TextInputType.phone,
style: TextStyles.black14,
decoration: InputDecoration(
hintText: 'Phone Number',
hintStyle: TextStyles.hintStyle14,),
validator: (value) {
print(value);
if (value.length != 10) {
return 'Invalid phone number';
}
return null;
},
),
TextButton(
onPressed: () {
//Validate here
if (!formKey.currentState!.validate()) return;
controller.login();
},
child: Text('Login'))
],
);
}
}
关于android - 'package :flutter/src/widgets/will_pop_scope. dart':断言失败:第 135 行 pos 12: '_route == ModalRoute.of(context)':不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67581389/
我正在尝试使用 jquery 获取图像 src,如下所示: HTML Javascript var imageSrc = $('.post_container img').attr('s
我遇到错误,无法完成构建。我搜索了 Stackoverflow 和 Github。我已经尝试了很多方法,但我无法修复。请帮忙。 (1) 在 [src/nullnull/debug, src/debug
我正在尝试使用图像制作一款类似 Match3 的游戏,但我无法进行比较。我正在为固定数量的 atm 执行此操作,只是为了让它正常工作,稍后应该在 foreach 循环中。如果有什么区别的话,该函数位于
我正在使用 jquery 插件 OwlCarousel,在我的一个 View 中使用 ng-repeat 场景,如下所示: 它运行良好,并为轮播中的每个项目输出以下标记: 有没
我的代码如下所示: Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.image1); int wi
如果未找到 src,我将使用 Angular 指令作为后备 url 作为名称首字母 指令 (function () { 'use strict'; angular .m
我是构建 chrome 扩展的新手,从一个小项目开始,我需要在弹出窗口中打印“构建版本”。构建版本被附加到 JS/CSS 资源中,如下所示: 需要从脚本 src 值中提取“6.0”。你能帮我看看如何
类型‘AbstractControl’上不存在属性‘Controls’。
这个tutorial演示如何使用指令 ngSrc 而不是 src : 他们要求: Replace the ng-src directive with a pl
我正在创建一个包含多个图像的图库,您可以在其中单击一个小缩略图,然后将打开该图像的更大版本。 打开后,如果您移动光标,图像将在 y 轴上跟随您。类似于 https://www.zara.com/es/
文档[] src.charAt src.length 这三样东西是什么? 我确定 pixState 会给我 1 或 0; var pixState = document[imgName].src.ch
问题背景: 我正在使用这个问题的解决方案:How to update AngularJS view when the value has not changed?所以在我看来我有: 当我更改照片时
我在 html 中有整个页面,在输出之前我想将所有 img src 替换为 data-src我正在使用 return (preg_replace('~]*\K(?=src)~i','data-',
Difference(s): android:src and tools:src? 如果有的话,什么时候使用 tools:src 而不是 android:src 是合适的? 最佳答案 如果您在运行时在
我需要检查每个 script 标签的 src 值,如果匹配,我想更改该脚本标签的 src 属性...像这样: var scripts = document.getElementsByTagName("
使用 img 标签的 data-src 或 src 属性有什么区别和后果(好的和坏的)?我可以使用两者获得相同的结果吗?如果是这样,应该什么时候使用它们? 最佳答案 属性 src 和 data-src
我使用 Vue。我尝试输出图像,当我使用 src 时效果很好,但当我使用 :src 时效果不佳。 作品 不起作用 我试过但没有用 @ 在路径的第一个。 ~ 路径中的第一个。 ./ 在路径的第一个。
在当前项目中我正在使用 jQuery。我只是想知道为什么会这样, $('#homeIcon').hover(function(){ document.getElementById('homeI
我在严格的 Java 环境中。 所以这个问题并不像标题中那么简单,我不是要解决我遇到的问题,它更理论化,以获得更好的知识。 我感兴趣的是用双引号或单引号匹配 src,但如果是双引号,它也必须用双引号结
我有一个 Joomla 2.5.28,现在使用 https 而不是 http。 一些文章(很多)包含来自 Vimeo 的嵌入视频。 最初,这些视频是使用http嵌入的,所以现在我的数据库中有字段int
我是一名优秀的程序员,十分优秀!