In Flutter i am passing data to a new screen, Here is my first_Screen sending data
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => updatenote(
id: snapshot.data[index],
title: snapshot.data[index]['title'],
content: snapshot.data[index]['content']),
),
);
Here is my second screen getting data,
class updatenote extends StatefulWidget {
const updatenote({super.key, required this.id , required this.title , required this.content });
final dynamic id;
final dynamic title;
final dynamic content;
@override
State<updatenote> createState() => _updatenoteState();
}
class _updatenoteState extends State<updatenote> {
// instance of text_ediitng controllers
final titleController = TextEditingController(text: widget.title);
final contentController = TextEditingController(text: widget.content);
now the problem is i can't access widget.title and widget.content outside of my build , here i want to pass that data as a parameter to the TextEditingController. but get this (error)..
The instance member 'widget' can't be accessed in an initializer. Try replacing the reference to the instance member with a different expression
You could define them as late
late final titleController = TextEditingController(text: widget.title);
late final contentController = TextEditingController(text: widget.content);
This makes it that the assignment happens lazily, meaning it happens at the point where you first use them. This allows it to use widget
there