Reputation: 1295
when I am trying to add the id present in the GenerateReportView Class to the map defined in the _GenerateReportViewState class I am getting the error,help me to fix this, in "id" key in the map i am adding the value present in the id in parent class.
class GenerateReportView extends StatefulWidget {
final String reportType;
final Map jsonString;
final String reportName;
final String dateType;
final String id;
final String language;
GenerateReportView(
{@required this.id,
@required this.language,
@required this.jsonString,
@required this.reportType,
@required this.reportName})
: dateType = jsonString['dateType'];
@override
_GenerateReportViewState createState() => _GenerateReportViewState();
}
class _GenerateReportViewState extends State<GenerateReportView>
with SingleTickerProviderStateMixin {
TabController _TabController;
String currentReportChartType;
List<TextEditingController> controllers = [];
TextEditingController controller;
Future report;
Map<String, dynamic> reqFormat = {"lang": "EN","id":widget.id};//here I am getting error saying "Only static members can be accessed in initializers."
Upvotes: 0
Views: 52
Reputation: 4009
Insert id in the contractor and pass it on
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class GenerateReportView extends StatefulWidget {
final String reportType;
final Map jsonString;
final String reportName;
final String dateType;
final String id;
final String language;
GenerateReportView(this.id, this.language, this.jsonString, this.reportType, this.reportName)
: dateType = jsonString['dateType'];
@override
_GenerateReportViewState createState() => _GenerateReportViewState(id);
}
class _GenerateReportViewState extends State<GenerateReportView>
with SingleTickerProviderStateMixin {
TabController _TabController;
String currentReportChartType;
List<TextEditingController> controllers = [];
TextEditingController controller;
Future report;
final String id;
Map<String, dynamic> reqFormat;
_GenerateReportViewState(this.id) {
reqFormat = {"lang": "EN", "id": id};
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return null;
} //here I am getting error saying "Only static members can be accessed in initializers."
}
And you don't need the @required
, just remove the Curly brackets
Upvotes: 0
Reputation: 54365
you can init in initState()
code snippet
class _GenerateReportViewState extends State<GenerateReportView> with SingleTickerProviderStateMixin {
TabController _TabController;
String currentReportChartType;
List<TextEditingController> controllers = [];
TextEditingController controller;
Future report;
Map<String, dynamic> reqFormat;
@override
void initState() {
reqFormat = {"lang": "EN","id":widget.id};
super.initState();
}
Upvotes: 1