Skip to content

[ πŸ”§ ErrorHandling ] axios μ—λŸ¬ λ°œμƒ μ‹œ, isError κ°€ true κ°€ λ˜μ§€ μ•ŠμŒΒ #245

@nuuco

Description

@nuuco

- μ–΄λ–€ λΆ€λΆ„μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν–ˆλ‚˜μš”?

axios μ—λŸ¬ λ°œμƒ μ‹œ React Query의 isError ν”„λ‘œνΌν‹°κ°€ true κ°€ λ˜μ–΄μ•Ό ν•˜λŠ”λ°, 계속 false κ°€ λ‚˜μ˜¨λ‹€.

- μ—λŸ¬ λ©”μ„Έμ§€

if(isError) {
   console.log("μ—λŸ¬ λ°œμƒ"); //톡신 μ—λŸ¬κ°€ λ°œμƒν•΄λ„ "μ—λŸ¬ λ°œμƒ"이 μ•ˆ 찍힘
}

- μ—λŸ¬ν•Έλ“€λ§ 방법

  • onError 와 isError λ₯Ό 같이 μ¨μ„œ λ°œμƒν•œ μ—λŸ¬μ˜€μŠ΅λ‹ˆλ‹€.
  • onErrorμ—μ„œ μ—λŸ¬ 처리 λ‘œμ§μ„ μ²˜λ¦¬ν•˜λ©΄ μ—λŸ¬κ°€ μ’…λ£Œλ©λ‹ˆλ‹€. 즉 isError κ°€ falseκ°€ λ©λ‹ˆλ‹€.
  • onError 둜 μ—λŸ¬ 처리λ₯Ό ν•  경우, isErrorλ₯Ό μ‚¬μš©ν•˜μ§€ 말고 onError μ•ˆμ—μ„œ state λ₯Ό μ„€μ •ν•΄ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  const { data, isLoading } = useQuery(
    ['roobits', roomId],
    () =>
      axios
        .get(`${process.env.REACT_APP_API_URL}/rooms/${roomId}`)
        .then((res) => res.data),
    {
      onError: (err) => {
        console.log('μš”μ²­ err', err);
        setErrPageOpen(true);
      }, //state 처리
    }
  );

- 문제 해결에 도움을 받은 레퍼런슀 링크

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions