gpt4 book ai didi

angular - 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法

转载 作者:行者123 更新时间:2023-12-02 10:25:04 25 4
gpt4 key购买 nike

我遇到这个错误:

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]
}

截图:enter image description here

我已经在 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,
) {
}
}

最佳答案

action.usuario 是一个对象,并且将对象传播到 Array 中未在 传播规范中定义 运算符。此外,users 属性需要一个 Usuario 对象数组。因此,首先,您需要将对象传播到另一个对象中,然后将其作为元素添加到数组中。

...
case fromUsuariosActions.CARGAR_USUARIOS_SUCCESS:
return {
...state,
loading: false,
loaded: true,
users:[{...action.usuarios}]
}
...

关于angular - 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59676430/

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