on() 函数创建 Reducer 时出错

And*_*oli 2 rxjs typescript ngrx angular

刚刚接近使用 ngrx 并且我有一个无法解决的未处理错误,尝试搜索但什么也没有,这是错误。

错误

它告诉我必须输入 4 个参数,但是无论我在哪里搜索使用另一种替代方法的正确语法,有人知道问题是什么吗?谢谢你

这是reducer的页面,我也贴一下action的页面,有消息告诉我

import { createReducer, on, Action } from '@ngrx/store';
import * as ProvaActions from './prova.actions';
import { ProvaState } from './prova.model';


export const initialState: ProvaState = {
    user: {},
    error: false
}

const provaReducer = createReducer(
    initialState,
    on(ProvaActions.editProvaSuccess, (state, action ) => ({user: action.user , error: false })),
    on(ProvaActions.editProvaFailed, (state, action ) => ({ user: {}, error: true }))
);
  
export function reducer(state: ProvaState | undefined, action: Action) {
    return provaReducer(state, action);
  }
Run Code Online (Sandbox Code Playgroud)

import { createAction, props } from '@ngrx/store';


export const editProva = createAction(
    '[Prova] Edit',
    props<{user: any}>() //payload, parametri che passo
)

export const editProvaSuccess = createAction(
    '[Prova] Edit Success',
    props<{user: any}>()
)

export const editProvaFailed = createAction(
    '[Prova] Edit Failure')
Run Code Online (Sandbox Code Playgroud)

export interface ProvaState {
    user: any,
    error: boolean;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

我遇到过同样的问题。我就是这样解决的。

  • 确保安装了 Typescript 4.1.5。

  • 将您的 VSCode Workspace Typescript 版本(在右侧底部工具栏中)更改为 4.1.5。