我有一个侧边栏和一个按钮,单击时我想切换变量true或false,然后显示/隐藏兄弟组件。我收到错误Type '{}' is not assignable to type 'boolean'
。我如何才能以正确的方式实现这一目标?打开关闭同级组件
侧边栏-menu.component.ts
import { Component, EventEmitter, Output } from '@angular/core';
@Component({
selector: 'sidebar-menu',
templateUrl: './sidebar-menu.component.html',
styleUrls: ['./sidebar-menu.component.styl']
})
export class SidebarMenuComponent {
showDetails = false;
@Output()
onShowDetails: EventEmitter<boolean> = new EventEmitter();
constructor() {}
toggleDetails() {
this.showDetails = !this.showDetails;
this.onShowDetails.emit(this.showDetails);
console.log('Sidebar Toggle', this.showDetails);
}
}
details.component.ts
import { Component, Input } from '@angular/core';
@Component({
selector: 'details',
templateUrl: './details.component.html',
styleUrls: ['./details.component.styl']
})
export class DetailsComponent {
@Input() showDetails: boolean;
constructor() {
}
}
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.styl']
})
export class AppComponent {
@Input() showDetails: boolean = false;
constructor() {
}
}
app.component.html
<sidebar-menu></sidebar-menu>
<details *ngIf="showDetails"></details>
<router-outlet></router-outlet>
您声明showDetails作为EventEmitter,右后,在构造函数中,你将它初始化为假。 false对于EventEmitter类型的变量不是有效的值。不确定信息如何更清晰。 –
是的,很明显,我不能使用布尔值,这很明显。什么不是为什么,我能做些什么呢。我如何在两个组件之间推送真/假值。 – Daimz
使用你的事件发射器来发射事件。从父组件收听这些事件以更改详细信息组件的showDetails输入的值。 –