小编Udi*_*zor的帖子

将大减速机拆分为更小的减速机

我有一个称为动物的功能减速器(切片减速器)。我想将这些减速器拆分为哺乳动物、鸟类、鱼类等。这部分很简单,因为我可以简单地使用ActionReducerMap.

现在假设哺乳动物的减速器状态很大,我想将其拆分为几个较小的减速器,即猫的家庭、狗的家庭等。 ActionReducerMap 不返回减速器并且不可嵌套。我尝试在网上搜索解决方案或示例,但找不到。简而言之,我的问题是如何制作多级嵌套减速器。

export interface AnimalsState{
  mammals: fromMammals.mammalsState;
  birds: fromBirds.birdsState;
}

export const reducers: ActionReducerMap<AnimalsState> = {
  mammals: fromMammals.reducer,
  birds: fromBirds.reducer
};
Run Code Online (Sandbox Code Playgroud)

我想将哺乳动物减速器拆分为更小的减速器。

typescript ngrx angular ngrx-store

7
推荐指数
1
解决办法
1524
查看次数

如何获取最后一个孩子 *ngFor 组件列表

我有一个名为 users-list 的组件。在这个组件里面有目录用户组件的 *ngFor 。

<directory-user-card *ngFor="let directoryUser of directoryUsers"
  [directoryUser]="directoryUser">
Run Code Online (Sandbox Code Playgroud)

我需要最后一个 directory-user-card 组件具有不同的样式。所以我尝试在父组件上使用 last-child 但没有成功。

directory-user-card :last-child{
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

css angular

7
推荐指数
1
解决办法
5011
查看次数

从“createAction”函数获取类型

创建 ngrx 操作有两种方法。一种是定义一个新的类来实现Action类,另一种是使用“createAction”函数。有没有办法获取使用“createAction”方法创建的操作的类型?

例如,如果我有这个操作:

export const getWorker = createAction(
  '[Worker Api] Get Worker',
  props<{ workerId: number }>()
);
Run Code Online (Sandbox Code Playgroud)

我想让workerId 处于监听该操作的效果中:

getWorker$ = createEffect(() => {
return this.actions$.pipe(
  ofType(WeatherApiActions.getWorker),
  switchMap((action: { type: string, workerId: number }) => this.workerService.getWorker(action.workerId)),
  map((worker: IWorker) => WeatherApiActions.getWorkerSuccess({ worker }))
)})
Run Code Online (Sandbox Code Playgroud)

和你一样,我不得不自己写这个类型。这使得效果与动作紧密耦合,这是一个巨大的缺点。所以我的问题是:我是否必须使用第一种创建操作的方法才能获得操作有效负载类型?

ngrx ngrx-effects angular

5
推荐指数
1
解决办法
1830
查看次数

有没有办法使用基于文件的路由在 next.js 中拥有“router-outlet”?

有没有办法使用基于文件的路由在 Next.js 中拥有“router-outlet”?这意味着路由将发生在容器页面的一部分内(与 Angular 中的 router-outlet 工作方式相同)?

reactjs next.js

5
推荐指数
0
解决办法
566
查看次数

角材料 MatSnackBar 默认持续时间

我们的团队正在应用程序中使用 Angular Material 的 MatSnackBar。因为每个人负责不同的页面,所以每个页面的snackBars 的持续时间是不同的。有些将持续时间设置为 2000 毫秒,有些设置为 1000 毫秒,有些甚至设置为 3000 毫秒。

我想从单个变量中获取持续时间值,以便我可以在一个地方控制所有小吃店的持续时间。甚至可以让开发人员在调用snackBar.open 函数时不发送持续时间值。

this.snackBar.open(message, {
  duration: 2000,
});
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

material-design angular-material angular angular5

4
推荐指数
1
解决办法
6165
查看次数

如何更改选项卡而不导致 selectedIndexChange

我需要以编程方式更改选项卡而不触发selectedIndexChange事件。

我在这里做了一个 stackBlitz 示例。相关代码如下:

<mat-tab-group [selectedIndex]="tabIndex" (selectedIndexChange)="informChange($event)">
  <mat-tab label="Tab 1"></mat-tab>
  <mat-tab label="Tab 2"></mat-tab>
  <mat-tab label="Tab 3"></mat-tab>
  <mat-tab label="Tab 4"></mat-tab>
  <mat-tab label="Tab 5"></mat-tab>
</mat-tab-group>
<br>
<button mat-raised-button color="primary" (click)="goToTab3()">Change Tab</button>
Run Code Online (Sandbox Code Playgroud)

与各自班级

export class AppComponent {
  tabIndex = 0;

  goToTab3() {
    this.tabIndex = (this.tabIndex + 1) % 5;
  }

  informChange(tabIndex:number) {
    console.log(tabIndex);
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是,每次单击按钮时选项卡都会发生变化,但附加到该事件的事件处理程序selectedIndexChange不应被执行。

因此,我需要区分选项卡单击(在这种情况下我确实希望selectedIndexChange触发)和代码所做的更改(本例中的按钮,但可能是来自其他部分的更改,例如 store/redux 更改)在这种情况下,我不想selectedIndexChange触发,而只想更改选定的选项卡。

angular-material angular

4
推荐指数
1
解决办法
5699
查看次数

storeFreeze 和 ngrx8

我刚刚升级到 ngrx/store 版本 8。我注意到 ng 更新已经删除了所有 storeFreeze 的出现。也将其从metaReducer 中删除。

所以我的问题是 -为什么

在 ngrx 8 中使用 storeFreeze 是否有问题?

在 ngrx8 之前:

import { ActionReducerMap, MetaReducer } from '@ngrx/store';
import { storeFreeze } from 'ngrx-store-freeze';
import * as fromGroupMember from './group-member.reducer';
import * as fromDirectoryForm from './directory-filter-form.reducer';

export const metaReducers: MetaReducer<IState>[] =
(localStorage && localStorage.getItem('production') === 'false') ? [storeFreeze] : [];
Run Code Online (Sandbox Code Playgroud)

后:

import { ActionReducerMap, MetaReducer } from '@ngrx/store';

import * as fromGroupMember from './group-member.reducer';
import * as fromDirectoryForm from …
Run Code Online (Sandbox Code Playgroud)

ngrx angular ngrx-store angular8

2
推荐指数
1
解决办法
2553
查看次数