Flutter : Can't access data passed from another screen

Issue

I’m trying to build 2 screens one contains a list of products and the second has product details, I’m using Firebase to store data and so I fetch the data from Firestore in the first screen and it all works perfectly.
However, in the second screen, I pass product data correctly using Navigator but I cannot use that data in my UI.

Here is the code for my second screen:

[!https://i.stack.imgur.com/BT1c9.png]

As you can see I cannot use the name variable in my widget tree, I’ve seen videos on youtube and I found that some people use state management to solve this problem, but for my case I just want to pass data and display it.

Solution

The way you’ve passed the data is correct but the way you’ve accessed the data isn’t.

Whenever you try to access the variables of a Class in its state, you do that using widget. So, to access the name or other variables, just do as follows:

widget.name

Additionally, if the only purpose is to pass and display the data, then, there’s no need of a StatefulWidget, use a StatelessWidget instead.

Answered By – Lalit Fauzdar

Answer Checked By – Timothy Miller (FlutterFixes Admin)

Leave a Reply

Your email address will not be published.