Reactjs 在React-Typescript中创建上下文时出错
我正在尝试从React Typescript中的dummyProducts列表创建ProductContext。以下是我正在使用的代码: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
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[]>([]);