10

我正在使用 Angular 8 和 NgRx 8,是否可以使用可选有效负载创建操作?我正在尝试做类似的事情:

export const MyAction = createAction('[Action ] MyAction', props<{ prop?: string }>());

但不幸的是不起作用。你可以帮帮我吗?

4

3 回答 3

8

基于这篇文章,有一个可选的有效负载定义。

例子:

export const FetchPlayersAction = createAction(
  '[Players.List] FETCH_PLAYERS',
  (payload: ListingOptions = {}) => payload, // defined optional payload
);
于 2020-10-16T18:00:48.360 回答
3

可以使有效负载中的键可选,但不能使有效负载对象本身。所以解决方案可以是这样的,我们希望有效负载对象中的错误是可选的。

export const listenForFeatureFailure = createAction(
    '[Feature] listen for feature Failure',
    props<{ error?: any }>()
);

在您的效果器中,您可以使用或不使用error

...
ProductSubscriptionActions.listenForFeatureAccessUpdatedFailure({error});
// or
ProductSubscriptionActions.listenForFeatureAccessUpdatedFailure({});
于 2021-09-27T13:11:55.030 回答
0

根据您的示例,您可以设置默认值,然后它是可选的:

export const MyAction = createAction(
  '[Action ] MyAction',
  (prop: string = 'My default value') => ({ prop })
);
于 2021-12-28T07:28:20.373 回答