I use NavigationRail
& NavigationBar
in my project. When I try to read the label of one of the designations attached to NavigationRail
, I get Text("Text")
instead of "Text"
.
Here is an example code:
onDestinationSelected: (value) {
context.goNamed(destinations[value].label.toString()); // output is "Text("Text")"
},
Is this an issue?
I tried same logic on NavigationBar
and it works fine.
destinations[value].label.toString(); // Output is "Text"
2
Answers
You need to cast the
label
as aText
widget before accessing itsdata
.Here’s how you can do it:
The
label
property is aText
widget, not aString
, so casting it first allows you to access the text content.To resolve this, you need to access the actual text content within the label property. Here’s how you can do it:
onDestinationSelected: (value) {
context.goNamed(destinations[value].label.data.first.toString()); // Access the first text node
},