Skip to main content

avoid-recursive-widget-calls

added in: 1.8.0
🛠
preset: recommended

Warns when a Widget is recursively used within the same Widget.

Example

❌ Bad:

class MyHomePage extends StatefulWidget {
const MyHomePage();


_MyHomePageState createState() => _MyHomePageState<MyHomePage>();
}

class _MyHomePageState extends State<MyHomePage> {

Widget build() {
return MyHomePage(); // LINT
}
}

class MyOtherWidget extends StatelessWidget {

Widget build() {
return MyOtherWidget(); // LINT
}
}

✅ Good:

class MyHomePage extends StatefulWidget {
const MyHomePage();


_MyHomePageState createState() => _MyHomePageState<MyHomePage>();
}

class _MyHomePageState extends State<MyHomePage> {

Widget build() {
return MyOtherWidget();
}
}

class MyOtherWidget extends StatelessWidget {

Widget build() {
return MyHomePage();
}
}