inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[실시간 채팅 with React]

SWR Devtools 소개

reactQuery로 짜고있는데...

해결된 질문

279

쵸잉

작성한 질문수 41

1

useQuery 나 mutation같은걸 통해 데이터를 가져오는데 데이터 렌더링이랑 훅스랑겹치지않게 가장 함수끝부분에 배치해야된다해서 그렇게 배치했는데 data 의 null 값여부를 젤 밑에서 하니까 그위에 훅스들은 수동으로 null 값을 체크해야되는데 이런경우는 어떤식으로 하는게 좋을까요?

interface Props {
    children?: React.ReactNode
   
}

const Comp: FC<Props> = () => {
    const {p1, p2} = useParams()

    if (!p1|| !p2) {
        return <>loading error</>;
    }
    const {data} = useQuery({
        queryKey: mykey,
        queryFn: () => myfunc1(userId, codeId)
    });
    const {mutate} = useMutation({
        mutationFn: async (data: CodeRequestEntity) => {
            await myfunc2(data)
            return true

        }
    })
    if(!data){
        return <>loading</>
    }
    const onClickConfirm = useCallback(() => {
        mutate(data)
        onClose()
    }, [])
    return (
        <>
<Button variant={"outlined"} onClick={onClickConfirm}>예
</Button>


        </>
    );
};

export default Comp;

이런식으로 하게되면 분기문을통해 데이터 null 처리를 해서 분기문 밑어부터는 null 처리를 안해도되는데 null 처리를 가장 밑에 렌더링부분에 넣으면 그위에 훅스에선 데이터쓸때마다 null 처리해줘야되서 혹시 다른 방법 있을까요?

react 웹팩 typescript socket.io babel 클론코딩

답변 1

2

제로초(조현영)

지금같이 하시면 hooks 규칙 위반했다는 에러가 뜨게 됩니다(use보다 return이 더 위에 있으면 안 됨). 원래 훅들은 서로 별개의 존재들이라 훅들마다 별도로 체크해주는 게 맞습니다.

기본 셋팅과 관련하여

0

91

1

초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법

0

96

2

focus 시에만 화면 업데이트 되는 이유 + 해결방법

0

149

2

useEffect 개수 관리

0

109

2

라이브러리 서치 방법

0

104

2

함수 정의 패턴

0

77

1

npm run dev 에러

0

152

3

npx webpack 후 에러

0

178

2

'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)

0

143

2

사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')

1

178

2

초기세팅중 packge.json 에러떠요

0

156

2

CORS - Access-Control-Allow-Origin 누락 문제

0

431

3

로그인 페이지 무한 새로고침 현상

0

598

2

Module not found: Error: Can't resolve './App' 에러

0

959

1

배포 방법

0

296

2

npm run dev 시 빌드가 매우 느려졌습니다

0

989

2

alias 경로 설정 오류

0

451

2

fetcher 함수의 data 값이 두번 찍히는 이유

0

277

1

제네릭 질문

0

218

2

ts-node 대신 tsx 사용여부

0

373

1

배포 관련 질문

0

247

1

[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.

0

385

2

[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.

0

336

1

users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.

0

247

2