另一个异常被抛出:多个小部件使用相同的 GlobalKey

Posted

技术标签:

【中文标题】另一个异常被抛出:多个小部件使用相同的 GlobalKey【英文标题】:Another exception was thrown: Multiple widgets used the same GlobalKey 【发布时间】:2021-10-22 04:11:53 【问题描述】:

我正在使用底部导航栏,其中包含我已在家庭控制器中初始化的全局键。 我正在将我的页面从第 1 页路由到第 2 页和第 3 页,现在从第 3 页我路由回主页,然后它会引发以下错误:

ch=false

引发了另一个异常:多个小部件使用相同的 GlobalKey。

引发了另一个异常:多个小部件使用相同的 GlobalKey。

引发了另一个异常:多个小部件使用相同的 GlobalKey。

【问题讨论】:

你可以添加你的代码sn-p 【参考方案1】:

移动小部件上的所有键和Flutter 相关导入。不建议在逻辑层 (GetxController) 中使用任何 UI 代码。在您看来,Keys and TextEdittingControllers 是逻辑层对象,但它们不是。它们是 UI/Flutter 层对象。

请始终牢记,Flutter 和 GetX 的生命周期并不完全相同。因此,在小部件中使用任何 Flutter disposable interfaces(键、控制器而不是 GetX 控制器)总是更好。

【讨论】:

以上是关于另一个异常被抛出:多个小部件使用相同的 GlobalKey的主要内容,如果未能解决你的问题,请参考以下文章

在多个小部件上显示相同的 QPushButton

使用 Assert 测试异常以确保它们被抛出的最佳方法

使用 Assert 测试异常以确保它们被抛出的最佳方法

tkinter多次使用相同的小部件

当它被抛出和捕获时,不要在那个异常处停止调试器

当尝试使用 JPA 将数据插入 MySQL 数据库时,我被抛出异常:列 'billing_address' 不能为空