Reputation: 37
I translating in Text widgets(check List<Map<String, Object>> screens
).
To translate using intl plugin.
Shows this error:
My code:
class TabScreen extends StatefulWidget {
@override
_TabScreenState createState() => _TabScreenState();
}
class _TabScreenState extends State<TabScreen> {
List<Map<String, Object>> screens;
@override
initState() {
screens = [
{
"screen": DistanceScreen(),
"title": Text(S.of(context).DistanceScreenTranslate)
},
{"screen": TemperatureScreen(), "title": Text("Temperature Convertor")},
{"screen": CurrencyScreen(), "title": Text("Currency Convertor")},
{"screen": TimeScreen(), "title": Text("Time Convertor")},
{"screen": NumberScreen(), "title": Text("Binary Convertor")},
];
getCurrentExchangeRates();
super.initState();
}
var selectedPageIndex = 0;
void selectPage(int index) {
setState(() {
selectedPageIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
leading: Padding(
padding: const EdgeInsets.all(4.0),
child: Image.asset(
'assets/icons/double-arrow.png',
height: 5,
width: 5,
),
),
title: screens[selectedPageIndex]["title"],
Help me please!
Upvotes: 2
Views: 696
Reputation: 91
You can use :
WidgetsBinding.instance!.addPostFrameCallback((_) async { $place your state to init here });
It could be async or not.
make sure to listen: false
if using provider.
Upvotes: 0
Reputation: 3136
Text(S.of(context).DistanceScreenTranslate)
: you do not have access to BuildContext
in initState
because it is yet to be created.
Consider using same statements inside didChangeDependecies
method. It is safe option to access BuildContext
before build method.
Upvotes: 1