I have a composable in my NavigationHost
class that I use to navigate to a NotesScreen()
looking like this:
composable(
route = NotesScreen.route "/{$USER_ID_KEY}"
) { backStackEntry ->
NotesScreen(
navController = navController,
userId = backStackEntry.arguments?.getString(USER_ID_KEY)
)
}
The issue is when I read the userId
string inside the NotesScreen()
function, it still includes the curly braces as part of the passed argument string, like "{NIsKtJ4QqteqSEwuMI7}"
. How can I make sure I get a clean string without the curly braces?
CodePudding user response:
When you call
navController.navigate(NotesScreen.route "/{$userId}")
Your final string looks something like
notes/{NIsKtJ4QqteqSEwuMI7}
It seems your code is purposefully adding an extra {
and }
, which then get matched to your pattern of
notes/{userId}
e.g., everything after the NotesScreen.route
is used as the userId
- the curly braces indicate the location of the placeholder for your userId
argument.
So if you don't want to add extra braces to your userId
, don't add them when you call navigate
:
navController.navigate(NotesScreen.route "/$userId")