我的RouteConfig定义了以下路径
@RouteConfig ([
{ path:'/main',name:'Home',redirectTo: ['Setup']},
{ path:'/setup',name:'Setup',component:SetupComponent},
{ path:'/configuration',name:'Configuration',component:ConfigurationComponent},
])
在模板中我有
<ol>
<li><a [routerLink]="['Setup']">Setup</a></li>
<li><a [routerLink]="['Configuration']">Configuration</a></li>
<li><a [routerLink]="['Home']">Home</a></li>
</ol>
在组件中,我尝试过的方法
this._Router.navigate(['Home']);
在这两种情况下,(使用routerLink指令和Router.navigate方法)尝试导航到“Home”路由时,我收到以下错误。
Component "AppComponent" has no route named "Home"
而具有与其关联的组件的路由都按预期工作。从Children路由器调用它们时的行为也一样。
如何路由/导航到名为“Home”的路线?
答案 0 :(得分:3)
您无法为重定向路线指定名称。由于Home
重定向到名为Setup
的路由,因此我会使用Setup
名称。
答案 1 :(得分:0)
你应该使用/之前路由器名称this._Router.navigate(['/ Home']);
上的另一个示例答案 2 :(得分:0)
在示例代码中,您具有家庭/主要路线对象:
CommandInvokationFailure: Unable to update the SDK. Please run the SDK Manager manually to make sure you have the latest set of tools and the required platforms installed.
C:\Program Files (x86)\Android\android-sdk\tempToolsDir\bin\sdkmanager.bat --sdk_root=C:\Program Files (x86)\Android\android-sdk tools platform-tools "build-tools;28.0.3"
stderr[
Error: Failed to find package Files
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
]
stdout[
]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEditor.Android.Command.RunWithStdin (System.Diagnostics.ProcessStartInfo psi, System.String errorMsg, System.Collections.Generic.IEnumerable`1[T] input) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEditor.Android.AndroidSDKTools.RunAndroidSdkTool (System.String toolName, System.String arguments, System.Boolean updateCommand, System.String errorMsg, System.String toolsDir) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEditor.Android.AndroidSDKTools.UpdateSDK (UnityEditor.Android.AndroidJavaTools javaTools) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKComponentDetector.Update (UnityEditor.Android.AndroidSDKTools sdkTools, UnityEditor.Android.AndroidJavaTools javaTools, System.Version minVersion, UnityEditor.Android.PostProcessor.ProgressHandler onProgress) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK.EnsureSDKComponentVersion (UnityEditor.Android.AndroidJavaTools javaTools, System.Version minVersion, UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKComponentDetector detector) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <e1c3953b4cf040ddb1400046b1c34897>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
您需要路由到路径-{
path:'/main',
name:'Home',
redirectTo: ['Setup']
},
,而不是名称-/main
。因此,您的html应该是:
Home
您的TypeScript应该是
<ol>
<li><a [routerLink]="'/setup'">Setup</a></li>
<li><a [routerLink]="'/configuration'">Configuration</a></li>
<li><a [routerLink]="'/main'">Home</a></li>
</ol>
此外,我在route interface中没有看到this._Router.navigate(['/main']);
属性,因此请考虑将其删除。
希望有帮助。