Flutter: recuperar o estado de nível superior do filho retorna nulo

Estou tentando obter o estado de nível superior do meu aplicativo usando um método .of () -, semelhante à função Scaffold.of (). Este é o código (simplificado):

class IApp extends StatefulWidget {    
  @override
  IAppState createState() => new IAppState();

  static IAppState of(BuildContext context) =>
    context.ancestorStateOfType(const TypeMatcher<IAppState>());
}

O aplicativo é iniciado usando o runApp (novo IApp)

Este widget cria uma página inicial:

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      // ommitted: some localization and theming details
      home: new HomePage(),
    );
  }

Em seguida, tento acessar o Estado a partir da HomePage (um próprio StatefulWidget):

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      // ommited: some Scaffold properties such as AppBar
      // runtimeType not actual goal, but just for demonstration purposes
      body: new Text(IApp.of(context).runtimeType.toString()),
    );
  }

O estranho é que o código funciona quando eu coloco o código para a HomePageno mesmo arquivo como o IApp, mas apenas como uma classe extra. No entanto, quando coloco o HomePageem um arquivo separado (main.dart e homepage.dart importando um ao outro), o valor de retorno de IApp.of (contexto) é nulo.

O que causa isso? E como posso corrigir isso?

questionAnswers(1)

yourAnswerToTheQuestion