debugCheckHasWidgetsLocalizations function
- BuildContext context
Asserts that the given context has a Localizations ancestor that contains a WidgetsLocalizations delegate.
To call this function, use the following pattern, typically in the relevant Widget's build method:
assert(debugCheckHasWidgetsLocalizations(context));
Always place this before any early returns, so that the invariant is checked in all cases. This prevents bugs from hiding until a particular codepath is hit.
Does nothing if asserts are disabled. Always returns true.
Implementation
bool debugCheckHasWidgetsLocalizations(BuildContext context) {
assert(() {
if (Localizations.of<WidgetsLocalizations>(context, WidgetsLocalizations) == null) {
throw FlutterError.fromParts(<DiagnosticsNode>[
ErrorSummary('No WidgetsLocalizations found.'),
ErrorDescription(
'${context.widget.runtimeType} widgets require WidgetsLocalizations '
'to be provided by a Localizations widget ancestor.',
),
ErrorDescription(
'The widgets library uses Localizations to generate messages, '
'labels, and abbreviations.',
),
ErrorHint(
'To introduce a WidgetsLocalizations, either use a '
'WidgetsApp at the root of your application to include them '
'automatically, or add a Localization widget with a '
'WidgetsLocalizations delegate.',
),
...context.describeMissingAncestor(expectedAncestorType: WidgetsLocalizations),
]);
}
return true;
}());
return true;
}