티스토리 뷰
typeScript로 contextAPI 를 사용하는 context 컴포넌트를 만들면 createContext로 사용할 전역 변수를 인터페이스로 만들어서 관리가 가능하다는 점과 제네릭 설정을 넣어 null 값에 대한 exception 처리를 손쉽게 할 수 있다는 장점이 있다.
바로 바로 참고할 수 있게 간단한 예제 컴포넌트만 하나 확인해보자.
◎AuthContext.tsx
import React, {createContext, useContext, useState} from 'react';
interface User {
id: number;
username: string;
}
interface AuthContextValue {
user: User | null;
setUser(user: User): void;
}
const AuthContext = createContext<AuthContextValue | null>(null);
export const AuthContextProvider = ({
children,
}: {
children: React.ReactNode;
}) => {
const [user, setUser] = useState<User | null>(null);
return (
<AuthContext.Provider value={{user, setUser}}>
{children}
</AuthContext.Provider>
);
};
export const useAuth = () => {
const auth = useContext(AuthContext);
if (!auth) {
throw new Error('AuthContextProvider is not used');
}
return auth;
};
조금... 더 편해졌나..? 확실히 엉뚱한 값을 context 함수에 넣어 발생하는 런타임 에러를 없앨 수 있어 보인다.
'Mobile > react-native' 카테고리의 다른 글
[react-native] typescript 환경에서 navigation 사용 (0) | 2024.02.21 |
---|---|
[react-native] typescript 환경에서 Hooks 예제 (1) | 2024.02.20 |
[react-native] typescript환경에서 Props 사용 (0) | 2024.02.20 |
[react-native] 실습 프로젝트: Simple SNS App (0) | 2024.02.15 |
[react-native] react-native-splash-screen (0) | 2024.02.13 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- Async
- 인천 구월동 맛집
- 파니노구스토
- redux
- await
- 인천 구월동 이탈리안 맛집
- Promise
- redux-thunk
- javascript
- AsyncStorage
- react-native
- react
- 정보보안기사 #실기 #정리
- 이탈리안 레스토랑
- 맛집
- Total
- Today
- Yesterday