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

回到顶部