Xamarin.Forms Shell 如何在路由导航中向字符串注入多个不同的值
Xamarin.Forms Shell how to inject multiple and different values to string in route navigation
如何将任何 属性 注入我们使用 Shell 导航的页面使用 Xamarin 的本机导航很简单,因为您必须实例化页面的类型:
Navigation.PushAsync(new HomeViewPage { x = y });
在 Shell 中只允许我传递字符串值
Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}");
我正在尝试传递一个布尔值,它向我显示以下错误:
'类型 'System.String' 的对象无法转换为类型 'System.Boolean'。'
Shell.Current.GoToAsync($"//home/bottomtab2?test={true}");
如果您尝试发送多个参数,none 个发送的参数有效,有没有办法同时发送多个?
Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}?test={"Dog"}");
首先在Route uri中传递值时,多个参数需要连接&
而不是?
如
Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}&test={"Dog"}");
second if you want to pass a bool
type
Shell.Current.GoToAsync($"//home/bottomtab2?test={true}");
在您的目标页面中,您可以将其作为字符串接收,这样就不会抛出错误,例如:
[QueryProperty("Test", "test")]
public partial class AboutPage : ContentPage
{
string test;
public string Test
{
set =>test = Uri.UnescapeDataString(value);
get => test;
}
}
如何将任何 属性 注入我们使用 Shell 导航的页面使用 Xamarin 的本机导航很简单,因为您必须实例化页面的类型:
Navigation.PushAsync(new HomeViewPage { x = y });
在 Shell 中只允许我传递字符串值
Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}");
我正在尝试传递一个布尔值,它向我显示以下错误: '类型 'System.String' 的对象无法转换为类型 'System.Boolean'。'
Shell.Current.GoToAsync($"//home/bottomtab2?test={true}");
如果您尝试发送多个参数,none 个发送的参数有效,有没有办法同时发送多个?
Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}?test={"Dog"}");
首先在Route uri中传递值时,多个参数需要连接&
而不是?
如
Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}&test={"Dog"}");
second if you want to pass a bool
type
Shell.Current.GoToAsync($"//home/bottomtab2?test={true}");
在您的目标页面中,您可以将其作为字符串接收,这样就不会抛出错误,例如:
[QueryProperty("Test", "test")]
public partial class AboutPage : ContentPage
{
string test;
public string Test
{
set =>test = Uri.UnescapeDataString(value);
get => test;
}
}