I use NavigationRail
& NavigationBar
in my project. When I try to read the label of one of the destinations 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"
You need to cast the label
as a Text
widget before accessing its data
.
Here's how you can do it:
onDestinationSelected: (value) {
context.goNamed((destinations[value].label as Text).data!);
}
The label
property is a Text
widget, not a String
, so casting it first allows you to access the text content.