Где вызвать context.read() - cubit

У меня вот как было, на экране авторизации я вешал contex.read() на событие кнопки. А как мне это сделать, если отправка данных должна произойти просто так (при загрузке экрана)? Без клика на что-либо

Я могу предоставить код кубита, но не знаю, нужен ли он вам -

class NewsCubit extends Cubit<NewsState> {

  NewsCubit() : super(NewsLoading());
  Future<void> getNews() async {
  //тут отправка на сервер
    if(response.statusCode == 200) {
      final responseJson = json.decode(response.body) as Map<String, dynamic>;
      emit(NewsLoaded(newsModel: NewsModel.fromJson(responseJson)));
    }
  }

Вот мой профайдер -

return BlocProvider<NewsCubit>(
      create: (context) => NewsCubit(),
      child: const NewsFeedBuild(),
    );

и мой билд -

return BlocBuilder<NewsCubit, NewsState>(
        builder: (context, state) {
          //Вот куда мне это поместить, не при билде же - context.read<NewsCubit>().getNews();
          if(state is NewsLoaded) {

Ответы (1 шт):

Автор решения: Vladislove

Если я правильно понял ваш вопрос - вы хотите, чтобы при каждом открытии экрана выполнялся метод getNews. Попробуйте в create прописать такой вариант:

return BlocProvider<NewsCubit>(
      create: (context) => NewsCubit()..getNews(),
      child: const NewsFeedBuild(),
    );
→ Ссылка