반응형
react - typescript를 사용하여 컨텍스트를 만들 때 네임스페이스 'ctx'를 찾을 수 없습니다.
프로젝트 진행 중인데react
사용.typescript
이 에러가 발생하는 이유를 파악하는데 어려움을 겪고 있습니다.기본적으로 이 에러는 사용할 수 없습니다.createContext
이것 때문에 인터넷에서 찾은 예들.특히 여기서 얻은 것입니다.https://github.com/typescript-cheatsheets/react-typescript-cheatsheet '콘텍스트' 섹션에 나와 있는 것과 같은 것을 사용하려고 합니다.
import * as React from "react";
export function createCtx<A>(defaultValue: A) {
type UpdateType = React.Dispatch<React.SetStateAction<typeof defaultValue>>;
const defaultUpdate: UpdateType = () => defaultValue;
const ctx = React.createContext({
state: defaultValue,
update: defaultUpdate
});
function Provider(props: React.PropsWithChildren<{}>) {
const [state, update] = React.useState(defaultValue);
return <ctx.Provider value={{ state, update }} {...props} />;
}
return [ctx, Provider] as [typeof ctx, typeof Provider];
}
문제는 이 오류가 발생할 때마다 네임스페이스를 찾을 수 없다는 것입니다.ctx
행:
return <ctx.Provider value={{ state, update }} {...props} />;
왜 그런지 아직도 모르겠어요. 누군가 제가 잘못하고 있는지 알 수 있어요?이것은 tsconfig.json 입니다.
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve",
"noImplicitAny": false,
"strictNullChecks": false
},
"include": [
"src"
]
}
어떤 도움이라도 주시면 감사하겠습니다!
파일 확장자는 다음과 같습니다..ts
대신.tsx
.
따라서 TypeScript는 다음과 같이 해석합니다.<ctx.Provider
배역을 맡아 활자를 찾으려 한다Provider
네임스페이스에ctx
.
언급URL : https://stackoverflow.com/questions/57242264/cannot-find-namespace-ctx-error-when-creating-context-with-react-typescript
반응형
'programing' 카테고리의 다른 글
Jackson JSON: json-tree에서 노드 이름 가져오기 (0) | 2023.04.03 |
---|---|
WooCommerce Cart의 특정 제품 속성 및 메타 데이터 에코 (0) | 2023.04.03 |
고객 일치 배송 구역 삭제..". woocommerce 카트에 있는 메시지 (0) | 2023.04.03 |
mongo에 인증할 수 없습니다. "auth failures" (0) | 2023.03.05 |
워드프레스가 내 URL 끝에 %E2%80%8E을(를) 넣는데, 어떻게 된 거죠? (0) | 2023.03.05 |