angular - 用于通用 Angular 组件的 NgRx 设计
问题描述
我有一个通用的日期选择器:
datepicker.component.html
<mat-form-field>
<mat-label>{{ label }}</mat-label>
<input matInput [matDatepicker]="picker" [(ngModel)]="selectedDate" (dateInput)="emit()">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
datepicker.component.ts
@Component({
selector: 'app-datepicker',
templateUrl: './input-datepicker.component.html',
styleUrls: ['./input-datepicker.component.css'],
})
export class InputDatepickerComponent {
@Input() label: string = "";
@Input() selectedDate = new FormControl();
@Output() selectedDateChange = new EventEmitter();
emit(){
this.selectedDateChange.emit(this.selectedDate);
}
}
例如,如果我在一个组件中需要两个日期选择器,我可以用两行代码来完成:
<app-datepicker label="Select start date" [(selectedDate)]="dateFrom"></app-datepicker>
<app-datepicker label="Select end date" [(selectedDate)]="dateTo"></app-datepicker>
使用此设置,我只需要在父组件中声明变量(在本例中为 dateFrom 和 dateTo),并且只要所选日期发生更改,变量就会更新。
这可以用 NgRx 完成,而不必为每个状态创建一个新的 reducer 吗?
解决方案
推荐阅读
- reactjs - spotify API 的问题,返回未定义的流派响应,(在成功的初始授权请求后)
- zapier - 支持多个文件的 Zapier 操作
- python - 字典不让我 .get() 给定键
- redux - 如何在 Next.js 中保持 redux 状态而不阻塞 SSR?
- oracle - 具有不同字符集的 Oracle 19 容器数据库
- javascript - 有没有更好的方法来编写空白 if-else 语句?
- python - 如何从目录外的文件中导入函数
- kotlin - 一个数组在这里被覆盖。这很容易,但对我不起作用
- .net - Xamarin Firebase 连接中的 NullReferenceException
- c# - 如果数据库值为 NULL,则在 ListView 中隐藏 Div