我正在构建一个带有“用户”页面的AngularDart 5.0.0应用程序:
@Component(
selector: 'users-page',
directives: const [coreDirectives],
pipes: [COMMON_PIPES],
templateUrl: 'users_page_component.html',
styleUrls: const [
'users_page_component.css',
],
)
class UsersPageComponent extends OnInit {
ngOnInit() async {
print("ngOnInit() ${this.hashCode}");
}
}
我在AppComponent中设置了到此页面的路线并定义了路线:
static final routes = [
new RouteDefinition(
routePath: usersRoutePath,
component: users.UsersPageComponentNgFactory),
];
<router-outlet [routes]="AppComponent.routes"></router-outlet>
使用在课外定义的路线:
final usersRoutePath = new RoutePath(
path: 'users',
parent: appRoutePath,
useAsDefault: true,
);
当用户点按按钮时,我拨打_router.navigate()
:
_router.navigate(usersRoutePath.toUrl(parameters: params));
点击按钮时,会拨打NgOnInit()
两个电话:
ngOnInit() 80777801
ngOnInit() 464932208
我已经三次检查.navigate()
只被调用一次。
这是一个问题,因为我需要在加载用户页面时进行网络调用,并希望避免连续两次。
这是一个错误吗?如何防止创建多个UsersPage组件?