Passing parameters back
See original GitHub issueI’m trying to understand how the new navigation works in 10.2. What I’m trying to do is this:
- Navigate to ListPage.
- Navigate to DetailPage.
- Navigate to EditPage.
- Navigate back to DetailPage.
From my ListPageViewModel
I create my path and navigate:
public async void ViewItem(Item item)
{
// _navigationService.GetNavigationPath(true) = "/ListPage".
var path = PathBuilder.Create(nameof(DetailPage), ("itemId", item.Id)).ToString();
await _navigationService.NavigateAsync(path, null, new DrillInNavigationTransitionInfo());
}
Then, to edit the item from my DetailPageViewModel
:
public async void EditItem(Item item)
{
// _navigationService.GetNavigationPath(true) = "/DetailPage?itemId=5cfb0eda-cdbd-4b08-b29b-dff2ef07ea77/ListPage?"
var path = PathBuilder.Create(nameof(EditPage), ("itemId", item.Id)).ToString();
await _navigationService.NavigateAsync(path);
}
First off, that path seems really strange to me. According to #1620, performing this nested navigation manually would look like “/ListPage/DetailPage?itemId=5cfb0eda-cdbd-4b08-b29b-dff2ef07ea77”, so I don’t understand why my url looks so weird here. But all the same, the navigation does work correctly.
However, when I go back, in my DetailPageViewModel
…
public override void OnNavigatedTo(INavigationParameters parameters)
{
// _navigationService.GetNavigationPath(true) = "/EditPage?itemId=5cfb0eda-cdbd-4b08-b29b-dff2ef07ea77/ListPage?"
var itemId = parameters.GetValue<string>("itemId"); // parameters is empty.
}
Once again, that path seems extremely strange. “DetailPage” isn’t even present. Also, I don’t get my id parameter handed to my DetailPageViewModel
again, as I would expect to. Of course, this means my app crashes or doesn’t perform correctly since it can’t find the necessary data.
Am I grossly misunderstanding how this is supposed to work, or is this broken?
Issue Analytics
- State:
- Created 6 years ago
- Comments:8 (6 by maintainers)
@TastesLikeTurkey Create a new issue if you see anything else.
@JerryNixon Glad I could help!