본문 바로가기
프로그래밍/Typescript

TypeError: prevState.boardId is not iterable

by 퐁당당당 2025. 3. 20.

prevState.boardId가 존재하지 않거나 배열이 아니라서 iterable(반복 가능)하지 않다는 뜻

 

에러가 났다

const onValid = (todo: IForm) => {
    const newTodo: ITodo = {
      id: Date.now(), // 고유한 ID 생성
      text: todo.todo,
    };
    setToDos((prevState) => ({
      ...prevState,
      boardId: [...prevState.boardId, newTodo],
    }));
    setValue("todo", ""); // 입력 필드 초기화
  };

 

boardId에 내가 접근하고 싶은 부분의 이름 (Doing, Done...)이 들어있기 때문에 prevState.boardId라고 접근했다

 

 

 

 

prevState["Doing"] // ✅ 올바른 접근 방법
prevState.Doing // ✅ 가능
prevState.boardId // ❌ boardId라는 키가 없음 (오류 발생)

 

안된댄다

 

저런식으로 정확한 이름을 부여하는 것만 가능하다 함.

 

setToDos((prevState) => ({
      ...prevState,
      [boardId]: [...prevState[boardId], newTodo], // ✅ 올바르게 boardId 접근
    }));

이렇게 적는게 맞다네 prevState[boardId]라고 적어줄 것.

또, boardId를 멤버의 이름으로 할당해줄 것

'프로그래밍 > Typescript' 카테고리의 다른 글

#4-2 Interfaces  (0) 2025.01.20
#4-1 Classes and Interfaces - Class  (2) 2025.01.20
#3. Functions  (0) 2025.01.14
#2. Overview of the Typescript  (1) 2025.01.14
Intro  (0) 2025.01.14