Używam nowego routera v3.0.0-alpha.3. Wyobraź sobie, że moje trasy wyglądają następująco:Angular2 Router v3, przejdź do innego poziomu: TypeError: Nie można odczytać właściwości "_routeConfig" o wartości zerowej
App
/\
/\
Settings Main
/\
/ \
User Account
Z widoku komponentu użytkownika chciałbym przejść do komponentu głównego. Gdybym nawigować do jakiegokolwiek składnika w ustawieniach poziom to działa dobrze, ale gdy próbuję przejść do innego poziomu pojawia się błąd:
EXCEPTION: Error: Uncaught (in promise): TypeError: Cannot read property '_routeConfig' of null
I naviagate stosując dyrektywę routerLink:
[routerLink]="['/main']" <- doesn't work
[routerLink]="['/settings']" <- works
[routerLink]="['/settings/user']" <- works
Wydaje się to jak globalny problem. Mogę poruszać się tylko na tym samym poziomie. Jakiś pomysł, jak mogę go ominąć?
Moje trasy przeszedł do bootstrap:
export const routes: RouterConfig = [
...MainRoutes,
...SettingsRoutes
];
export const APP_ROUTER_PROVIDERS = [
provideRouter(routes)
];
main.routes.ts:
export const MainRoutes: RouterConfig = [{
path: '/main',
component: SettingsComponent
}];
settings.routes.ts:
export const SettingsRoutes: RouterConfig = [{
path: '/settings',
component: SettingsComponent,
children: [{
path: '/user',
component: UserSettingsComponent,
index: true
}]
}];
EDIT:
Ponieważ podany link w komentarzach już nie działa, proponuję tymczasową poprawkę. Błąd nadal istnieje w alpha.7 wersji routera ale będzie ustalona here
problem jest w router.js plików, funkcja GuardChecks.prototype.runCanDeactivate linia 309 (w routerze v.alpha. 7):
var canDeactivate = curr._routeConfig ? curr._routeConfig.canDeactivate : null;
go zmienić na:
var canDeactivate = curr && curr._routeConfig ? curr._routeConfig.canDeactivate : null;
Proszę pamiętać, że powinien on być traktowany jako tymczasowy fix, nie nadaje się do zautomatyzowanej produkcji pl vironment!
Wydaje się być https: //github.com/angular/vladivostok/issues/48 –
Czy wypróbowałeś Angular2 RC.3? –
W rzeczywistości zrobiłem to po twoim komentarzu, ale to niczego nie zmieni, ponieważ problem tkwi w routerze, który nie ma jeszcze nowej wersji: https://www.npmjs.com/package/@angular/router – Baumi