【问题标题】:When i execute "setState" i get this error on emulator screen "Bad State: Stream has been already listened to."当我执行“setState”时,我在模拟器屏幕上收到此错误“Bad State: Stream has been listened”。
【发布时间】:2021-03-15 08:26:46
【问题描述】:

我认为这是关于 Easy Localization 导致错误行将我发送到 return EasyLocalization (...) 我进行了研究,人们通过初始化密钥解决了他们的问题,但我也尝试过,但没有成功。

代码片段:

@override
  Widget build(BuildContext context) {
    //The error raises here <-------------
    return EasyLocalization(
      // key: context.widget.key,
      path: 'resources/langs',
      supportedLocales: context.supportedLocales,
      child: MaterialApp(...)

【问题讨论】:

  • 如果您使用的是StreamController,请在小部件的dispose() 方法中关闭该控制器
  • 我没有StreamController 这就是为什么它如此混乱

标签: android flutter dart setstate


【解决方案1】:

我认为您有一个StreamController,任何给定的streamController 一次可以被一个实体收听,但在您的情况下,多个实体正在尝试收听它,这会导致问题,请在streamController StreamControoller&lt;your_type&gt;.broadcast() 会解决这个问题。

【讨论】:

  • 我在此页面中没有StreamController
  • EasyLocalization 我猜里面有一个
【解决方案2】:

好的,我找到了解决方案。我在一页中两次初始化EasyLocalization,这就是我收到此错误的原因。我删除了包装MaterialApp 小部件的EasyLocalization 小部件并解决了问题。

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 2023-03-24
    • 1970-01-01
    • 2015-12-18
    • 2011-09-17
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多