我遇到了这个错误:
error TS2488: Type 'Usuario' must have a '[Symbol.iterator]()' method
that returns an iterator.
我的代码:
usuarios.reducers.ts
export interface UsuarioState {
users: Usuario[];
loaded: boolean;
loading: boolean;
error: any;
}
const initState: UsuarioState = {
users: [],
loaded: false,
loading: false,
error: null
}
export function usuariosReducer(state = initState, action: fromUsuariosActions.usuariosAcciones): UsuarioState {
switch (action.type) {
case fromUsuariosActions.CARGAR_USUARIOS:
return {
...state,
loading: true
}
case fromUsuariosActions.CARGAR_USUARIOS_SUCCESS:
return {
...state,
loading: false,
loaded: true,
users:[...action.usuarios]
}
截图:
我已经在我的tsconfig.json
文件中添加了"es5", "dom.iterable"
,但是仍然不能工作,你能给我解释一下出了什么问题吗?
usuarios.actions.ts
import { Action } from '@ngrx/store';
import { Usuario } from '../../models/usuario.model';
export const CARGAR_USUARIOS = 'CARGAR_USUARIO'
export const CARGAR_USUARIOS_FAIL = 'CARGAR_USUARIO_FAIL'
export const CARGAR_USUARIOS_SUCCESS = 'CARGAR_USUARIO_SUCCESS'
export class CargarUsuarios implements Action {
readonly type = CARGAR_USUARIOS;
}
export class CargarUsuariosFail implements Action {
readonly type = CARGAR_USUARIOS_FAIL;
constructor(public payload: any) {}
}
export class CargarUsuariosSuccess implements Action {
readonly type = CARGAR_USUARIOS_SUCCESS;
constructor(public usuarios: Usuario) {}
}
export type usuariosAcciones = CargarUsuarios |
CargarUsuariosFail |
CargarUsuariosSuccess
usuario.model.ts
export class Usuario {
constructor(
public id: number,
public first_name: string,
public last: string,
public avatar: string,
) {
}
}
发布于 2020-01-10 14:50:15
action.usuario
是Object
,并且在Array
运算符的规范中没有定义将对象扩展到spread
中。此外,users
属性需要一个Usuario
对象数组。因此,首先需要将对象spread
到另一个object
中,然后将其作为元素添加到数组中。
...
case fromUsuariosActions.CARGAR_USUARIOS_SUCCESS:
return {
...state,
loading: false,
loaded: true,
users:[{...action.usuarios}]
}
...
https://stackoverflow.com/questions/59676430
复制相似问题