useAuthContext 에서 dispatch 를 사용할 때 에러가 나요.
855
작성한 질문수 2
const { dispatch } = useAuthContext();
위와 같이 사용했을 때 dispatch 아래에 밑줄이 생기는데
'null' 형식에 'dispatch' 속성이 없습니다.ts(2339)
const dispatch: any
와 같은 에러가 생깁니다.
(alias) const AuthContext: Context<null>
import AuthContext
이렇기 때문인 것 같은데 어떻게 수정해야할까요..
타입스크립트를 사용하고 있습니다.
답변 1
1
Context와 dispatch에 타입을 잘 넣어주시면 됩니다 :)
찾으신것처럼 Context에 타입을 null로 주셔서 아무것도 없는데 dispatch를 꺼내쓰려고 해서 생긴 오류입니다.
참고할만한 예제 코드를 드리겠습니다. 연습해보시고 적용하시면 좋을듯 해요. 화이팅입니다!
import { Dispatch, createContext, useContext, useReducer } from 'react';
type Action = { type: 'increment' } | { type: 'decrement' };
function counterReducer(state: number, action: Action): number {
switch (action.type) {
case 'increment':
return state + 1;
case 'decrement':
return state - 1;
default:
throw new Error('Unhandled action type');
}
}
const initialState = 0;
type CounterContextType = {
state: number;
dispatch: Dispatch<Action>;
};
const CounterContext = createContext<CounterContextType>({
state: initialState,
dispatch: () => {},
});
function CounterProvider(props: { children }) {
const [state, dispatch] = useReducer(counterReducer, initialState);
const value = { state, dispatch };
return <CounterContext.Provider value={value} {...props} />;
}
function useCounterContext(){
const context = useContext(CounterContext);
return context
}
function Counter() {
const {state, dispatch} = useCounterContext();
const handleIncrement = () => dispatch({ type: 'increment' });
const handleDecrement = () => dispatch({ type: 'decrement' });
return (
<>
<h1>{state}</h1>
<button onClick={handleIncrement}>+</button>
<button onClick={handleDecrement}>-</button>
</>
);
}
function App() {
return (
<CounterProvider>
<Counter />
</CounterProvider>
);
}
export default App;
전체적인 개발에 대해 문의드립니다.
1
15
1
챌린지 시작일 문의
0
17
0
줄바꿈 시 \ 필수인가요?
0
24
2
2605 이후 최신 클로드코드 강의 추가 부탁드립니다.
0
21
2
커리큘럼 문서 제공받을 수 있을까요?
0
23
1
ThemeProvider를 이용해서 NextThemeProvider를 따로 생성하여 Layout.tsx에 적용하는 이유는 뭘까요?
0
14
1
app logs 데이터로 쿼리 연습
0
19
2
mission 09-01 을 수행할 수 없어요
0
22
1
outputStyle 설정하는데 어디서 문제일까요?
0
26
3
test.txt파일 삭제시 rm명령어이니 클로드의 질문이 있어야 한다고 하셨는데
0
20
2
displayName 에 대해 질문있습니다.
0
152
1
onAuthStateChanged 가 가지는 장점에 대해
0
320
1
회원가입 실행이 안되요
0
495
1
[빌드와 배포] Failed to list Firebase projects 오류 (해결)
5
3379
2
useCollection Error
0
331
1
firebase deploy에러 문의 드려요.
2
782
1
next js 에는 browserRouter가 없어서 상태에 맞는 화면을 어떻게 노출하나요?
0
444
1
저는 여기 css 파트에서 li가 점 . 으로 보이는데 안보이게 어떻게 하신건가요?
1
602
1
전체 코드
0
294
0
context api를 커스텀 후크로 뿌리시는 이유가 궁금해요.
0
774
1
next사용하는 프로젝트에 적용하려고 하는데 문제가 생겻습니다.
0
681
1
import시키고 npm start시켰을 때, 페이지는 나오는데, login, signup 페이지의 글자가 선생님처럼 나오지 않습니다!
0
374
2
firebase api key 가 유효하지 않습니다.
0
627
1
뒷부분 소리 안나와요
0
295
2





