(Flutter Bloc)不符合类型参数“B”的绑定“StateStreamable<state>”

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

为什么我会收到错误消息?我找不到原因。如果你能帮助我,我会很高兴。

error screen

你可以在github上查看我的问题

flutter bloc flutter-bloc
5个回答
9
投票

你好,我解决了这个问题。问题是出现错误,因为有 2 个同名的类,所以我的 StatefulWidget 类名与我的块状态类名相同:) 当我更改块状态类的名称时,它被修复了。


1
投票

您可以对 StatefulWidget 状态使用相同的名称,并在块或状态中再次使用该名称,请不要重复相同的名称,否则会出现错误


0
投票

发生这种情况时

  1. 您有两个同名的课程
  2. 您添加的是区块而不是事件

例如:


class CounterBloc extends Bloc<CounterBloc, CounterState> {
  CounterBloc() : super(const InitialState()) {
    on<IncrementEvent>((event, emit) {
      emit(IncrementedCounterState());
    });
    on<IncrementEvent>((event, emit) {
      emit(DecrementedCounterState());
    });
  }
}

我应该通过事件而不是

Bloc<CounterBloc,CounterState>
中的集团,它应该是
Bloc<CounterEvent,CounterState>

  1. 我会更新更多。

0
投票

如果此问题的主要原因如下:

there were 2 classes with the same name

不是解决方案,或者您已经修复了它但仍然存在问题,

只需运行

flutter clean
flutter pub get
命令即可修复它。


0
投票

除了其他解决方案外,还要检查您是否给出了块类型

NewsBloc 类扩展了 Bloc

如果你没有给出,它会给出同样的错误。

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