gpt4 book ai didi

javascript - NGRX Action /效果上的多个有效负载

转载 作者:行者123 更新时间:2023-11-28 17:38:02 27 4
gpt4 key购买 nike

我需要使用 ngrx/effect 向 API 发送 put 请求,但该请求需要 ID 和内容,以便 MongoDB 能够找到帖子。

这是代码,我尝试设置两个操作负载:

export class UpdatePost implements Action {
readonly type = UPDATE_POST

constructor(public payload: string & Post ) { }
}

效果如下:

@Effect() 
editPost$: Observable<Action> = this.actions$
.ofType(PostActions.UPDATE_POST)
.map((action: PostActions.UpdatePost) => action.payload)
.switchMap((?) => {
return this.postService.editPost(id, post);
})
.map(editedpost => ({type: PostActions.UPDATE_POST_SUCCESS, payload: editedpost}))
}

editPost() 需要两个参数:id 和 content。

我想我的操作负载应该以其他方式设置,我是 ngrx 的新手,所以欢迎提出建议。

最佳答案

当你声明一个string & Post类型的变量时,就意味着这个变量拥有Post的所有方法和string的所有方法。这可能不是你想要的。您希望您的操作具有标识符(字符串类型)和帖子。您可以为此声明一个接口(interface),或者您的操作可以具有多个属性,如下所示:

export class UpdatePost implements Action {
readonly type = UPDATE_POST

constructor(public id: string, public payload: Post ) { }
}

那么在你的效果中你可以写:

@Effect() 
editPost$: Observable<Action> = this.actions$
.ofType(PostActions.UPDATE_POST)
.switchMap(action => {
return this.postService.editPost(action.id, action.post);
})
.map(editedpost => ({type: PostActions.UPDATE_POST_SUCCESS, payload: editedpost}))
}

关于javascript - NGRX Action /效果上的多个有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48618614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com