0

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"

2 Answers 2

1

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.

Sign up to request clarification or add additional context in comments.

1 Comment

This worked. Thanks!
0

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
},       

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.