2

For managing pull-to-refresh indication in Flutter with BLoC I created a custom Completer hook as an alternative to using a Stateful Widget, and in general, it works fine, however with hot-reload I run into Bad state: Future already completed

import 'dart:async';

import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter_hooks/flutter_hooks.dart';

class _CompleterHook extends Hook<Completer> {
  @override
  HookState<Completer, Hook<Completer>> createState() => _CompleterHookState();
}

class _CompleterHookState extends HookState<Completer, _CompleterHook> {
  Completer _completer;

  @override
  void initHook() {
    _completer = Completer<void>();

    super.initHook();
  }

  @override
  Completer build(BuildContext context) => _completer;
}

Completer<void> useCompleterHook() {
  return Hook.use(_CompleterHook());
}

Not sure if there is perhaps something I missed, it's literally only on the HR so completely a development annoyance, I would prefer not to learn to live with it though. Any ideas or suggestions on ways to fix that.

TIA

RemeJuan
  • 823
  • 9
  • 25
  • 4
    Your error is called by a code unrelated to what you gave: the completion of the future. – Rémi Rousselet Jul 08 '20 at 17:13
  • @RémiRousselet thanks, that got me taking a few steps back, I had miss-read the bloc docs for dealing with pull-to-refresh and was using a builder instead of a consumer. – RemeJuan Jul 08 '20 at 18:33

0 Answers0