avoid-inherited-widget-in-initstate

Path
lint/correctness/avoid-inherited-widget-in-initstate
Default
On (recommended)
Origin
Falcon
Domain
flutter
Rule
75 of 512
recommendedflutter

Avoid inherited-widget subscriptions during initState. Checks direct BuildContext dependency calls and known subscribing Flutter of methods, including synchronous local helper calls.

Invalid

example.dartdart
import 'package:flutter/material.dart';
class S extends State<StatefulWidget> { void initState() {
Theme.of(context);
MediaQuery.of(context);
Directionality.of(context);
DefaultTextStyle.of(context);
IconTheme.of(context);
}}
Move inherited-widget subscriptions from `initState` to `didChangeDependencies`.
2class S extends State<StatefulWidget> { void initState() {
3Theme.of(context);
Move inherited-widget subscriptions from `initState` to `didChangeDependencies`.
3Theme.of(context);
4MediaQuery.of(context);
Move inherited-widget subscriptions from `initState` to `didChangeDependencies`.
4MediaQuery.of(context);
5Directionality.of(context);
Move inherited-widget subscriptions from `initState` to `didChangeDependencies`.
5Directionality.of(context);
6DefaultTextStyle.of(context);
Move inherited-widget subscriptions from `initState` to `didChangeDependencies`.
6DefaultTextStyle.of(context);
7IconTheme.of(context);

Valid

example.dartdart
import 'package:flutter/material.dart';
class S extends State<StatefulWidget> { void didChangeDependencies() {
Theme.of(context);
MediaQuery.of(context);
Directionality.of(context);
DefaultTextStyle.of(context);
IconTheme.of(context);
}}

Configure avoid-inherited-widget-in-initstate

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "correctness": {
        "avoid-inherited-widget-in-initstate": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/correctness/avoid-inherited-widget-in-initstate: <reason>