Reactjs 在React-Typescript中创建上下文时出错

Reactjs 在React-Typescript中创建上下文时出错,reactjs,typescript,react-hooks,Reactjs,Typescript,React Hooks,我正在尝试从React Typescript中的dummyProducts列表创建ProductContext。以下是我正在使用的代码: import React, { createContext, useState } from 'react'; import { dummyProducts } from '../constants/dummyProducts'; export const ProductsContext = createContext(); const ProductsCo

我正在尝试从React Typescript中的dummyProducts列表创建ProductContext。以下是我正在使用的代码:

import React, { createContext, useState } from 'react';
import { dummyProducts } from '../constants/dummyProducts';
export const ProductsContext = createContext();

const ProductsContextProvider: React.FC = ({children}) => {

    const [products] = useState(dummyProducts);
    return ( 
        <ProductsContext.Provider value={{products}} >
            { children }
        </ProductsContext.Provider>
     );
}
export default ProductsContextProvider;
import React,{createContext,useState}来自“React”;
从“../constants/dummyProducts”导入{dummyProducts};
导出常量ProductsContext=createContext();
const ProductsContextProvider:React.FC=({children})=>{
常量[产品]=使用状态(dummyProducts);
报税表(
{儿童}
);
}
导出默认产品ContextProvider;
但我得到了以下错误:

(alias) createContext<unknown>(defaultValue: unknown): React.Context<unknown>
import createContext
Expected 1 arguments, but got 0.ts(2554)
index.d.ts(381, 9): An argument for 'defaultValue' was not provided.
(别名)createContext(默认值:未知):React.Context
导入createContext
应为1个参数,但得到0.ts(2554)
index.d.ts(381,9):未提供“defaultValue”的参数。
我也尝试过这样使用:

 - createContext({});
 - createContext(null);
 - interface IProducts {
        name: string,
        id: string
    }
    createContext<IProducts>();

    //But getting this error: 
    interface IProducts
    Expected 1 arguments, but got 0.ts(2554)
    index.d.ts(381, 9): An argument for 'defaultValue' was not provided.
-createContext({});
-createContext(null);
-接口IPProducts{
名称:string,
id:字符串
}
createContext();
//但是得到这个错误:
接口IPProducts
应为1个参数,但得到0.ts(2554)
index.d.ts(381,9):未提供“defaultValue”的参数。
我不知道如何添加products接口来支持虚拟产品创建上下文。我还可以尝试什么?

需要
defaultValue
的参数。如果不需要任何特定的默认值,可以传递
未定义的

export const ProductsContext=createContext(未定义);

您需要传递类型和默认值。根据文件:

defaultValue参数仅在树中组件上方没有匹配的提供程序时使用

只要您使用的是
提供程序
,就可以向其传递一个空对象,如:

export const ProductsContext = createContext<IProducts>({} as IProducts);

@PriyankKachhela不正确当我使用它时,我得到以下错误:类型“{products:{id:number;name:string;price:number;photo:string;details:string;}[];}”不能分配给类型“undefined”。ts(2322)index.d.ts(333,9):所需类型来自属性“value”,该属性在类型“IntrinsicatAttributes&ProviderProps”上声明
export const ProductsContext = createContext<IProducts[]>([]);