使用react创建上下文时找不到命名空间'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
。
以上是 使用react创建上下文时找不到命名空间'ctx'错误 的全部内容, 来源链接: utcz.com/qa/432364.html