angular - 必须有一个返回迭代器的“[Symbol.iterator]()”方法
问题描述
我遇到了这个错误:
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]
}
我已经添加"es5", "dom.iterable"
到我的tsconfig.json
文件中,但仍然无法正常工作,你能解释一下有什么问题吗?
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,
) {
}
}
解决方案
action.usuario
is an并且将Object
对象扩展为 anArray
在运算符的规范中未定义spread
。此外,该users
属性需要一个对象数组Usuario
。因此,首先,您需要spread
将对象放入另一个对象object
,然后将其作为元素添加到数组中。
...
case fromUsuariosActions.CARGAR_USUARIOS_SUCCESS:
return {
...state,
loading: false,
loaded: true,
users:[{...action.usuarios}]
}
...
推荐阅读
- ruby-on-rails - How to Use Form Data as Query String
- javascript - TypeError: Object of type Undefined is not JSON serializable
- javascript - How to insert a javascript variable into a php code?
- pandas - Unable to import Pandas because of Numpy
- php - DOMDocument::loadXML(): I/O 警告:加载外部实体失败
- python - 从 wikisource XML 转储文件中提取文本
- python-3.x - 如何将 AWS Glue df 列数据写入单独的 html 文件
- python - 无法更新模型,因为“id 已存在”
- javascript - Ant Design 在 react js 项目中不起作用
- java - 方法调用“getMessage”可能会产生“NullPointerExeption”