Я не могу понять, что не так с этим кодом. На этой странице есть поставщик блоков:
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider(
create: (BuildContext context) {
return DatabaseBloc();
},
),
BlocProvider(
create: (BuildContext context) {
return QuestionholderBloc();
},
)
],`child:RaisedButton(
splashColor: Colors.green[600],
focusElevation: 50.0,
hoverElevation: 50.0,
color: Colors.green[600],
shape: RoundedRectangleBorder(
side: BorderSide(color: Colors.yellow[700]),
borderRadius: BorderRadius.circular(50.0)),
child: Text(
"Start",
style: TextStyle(fontWeight: FontWeight.bold),
),
textColor: Colors.white70,
onPressed: () {
ExtendedNavigator.of(context)
.pushNamed(Routes.questionHandler);
}),)
извините за возможную синтаксическую ошибку. В QuestionHolderPage у меня есть:
void didChangeDependencies() {
_statusbloc = BlocProvider.of<QuestionholderBloc>(context);
_dbbloc = BlocProvider.of<DatabaseBloc>(context);
_statusbloc.add(CheckStatus());
super.didChangeDependencies();
}
Widget build(BuildContext context) {
return Scaffold(
body: MultiBlocListener(
listeners: [
BlocListener<QuestionholderBloc, QuestionholderState>(
listener: (context, state) {
if (state is NoQuestions) {
_dbbloc.add(GetQuestions());
} else if (state is HasQuestions) {
_statusbloc.add(GetQuestion());
}
},
),
BlocListener<DatabaseBloc, DatabaseState>(
listener: (context, state) {
if (state is Loaded) {
_statusbloc.add(SetQuestions(questionsToSet: state.questions));
}
},
),
],
child: BlocBuilder<QuestionholderBloc, QuestionholderState>(
builder: (context, state) {
if (state is QuestionLoaded) {
return QuestionWidget(question: state.question);
} else {
return CircularProgressIndicator();
}
},
),
),
);
}
}
Ошибка:
Ошибка: не удалось найти предка, начиная с контекста, который был передан I/flutter (4318): BlocProvider.of().
`
), он выглядит неуместным. Если это просто тип здесь, а не в вашем коде, пожалуйста, исправьте его в любом случае. - person halfer   schedule 16.05.2020