Reputation: 23
I'm a Flutter Beginer and about to use Bloc. but this error message comes up and I tried to use 'extends StateStreamable<CalculatorEvent>' or 'implements' but it doesn't work. please help me to solve this error. Thank you.
'CalculatorBloc' doesn't conform to the bound 'StateStreamable<CalculatorEvent>' of the type parameter 'B'. (Documentation) Try using a type that is or is a subclass of 'StateStreamable<CalculatorEvent>'.
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:calc/state/bloc/calculator_bloc.dart';
class CalculatorScreen extends StatelessWidget {
const CalculatorScreen({super.key});
@override
Widget build(BuildContext context) {
return BlocBuilder<CalculatorBloc, CalculatorEvent> (
builder: (context, state) {
return Scaffold(
resizeToAvoidBottomInset: false,
body: SafeArea(
child: Container(
color: AppColors.mainBackgroundColor1,
width: MediaQuery
.of(context)
.size
.width,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("MAIN"),
],
)),
),
);
},
);
}
}
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:meta/meta.dart';
import 'package:bloc/bloc.dart';
part 'calculator_event.dart';
part 'calculator_state.dart';
class CalculatorBloc extends Bloc<CalculatorEvent, CalculatorState> {
CalculatorBloc() : super(const CalculatorInitial(0)) {
//on<CalculatorCommandEvent>((event, emit) => onCalculatorCommandEvent(event, emit));
on<CalculatorInitPressed>(
(event, emit) => emit(CalculatorInitial(0)),
);
}
@immutable
abstract class CalculatorEvent {
const CalculatorEvent();
}
class CalculatorInitPressed extends CalculatorEvent {
const CalculatorInitPressed();
}
@immutable
abstract class CalculatorState {
final int value;
const CalculatorState(this.value);
}
class CalculatorInitial extends CalculatorState {
const CalculatorInitial(super.value);
}
use Flutter bloc and write an app.
Upvotes: 2
Views: 83
Reputation: 11
You need to use your CalculatorState and not "CalculatorEvent" in your builder function
Upvotes: 0
Reputation: 2541
According to the doc, in the BlocBuilder
you should use CalculatorState
and not CalculatorEvent
:
@override
Widget build(BuildContext context) {
return BlocBuilder<CalculatorBloc, CalculatorState> (
Upvotes: 1