Reactjs 使用typescript确定上下文中的状态类型
在我计算bmi的项目中,我希望将结果作为一个数组保存在一个状态中,并将其保存在本地Reactjs 使用typescript确定上下文中的状态类型,reactjs,typescript,context-api,Reactjs,Typescript,Context Api,在我计算bmi的项目中,我希望将结果作为一个数组保存在一个状态中,并将其保存在本地 export type BmiContextState = { weight: number | undefined; height:number | undefined; open:boolean|undefined; alert:boolean|undefined; results:resultState; handleWeight(event: React.C
export type BmiContextState = {
weight: number | undefined;
height:number | undefined;
open:boolean|undefined;
alert:boolean|undefined;
results:resultState;
handleWeight(event: React.ChangeEvent<HTMLInputElement>): void;
handleHeight(event: React.ChangeEvent<HTMLInputElement>): void;
openModal(event: React.MouseEvent<HTMLButtonElement, MouseEvent>):void;
openAlert(event: React.MouseEvent<HTMLButtonElement, MouseEvent>):void;
calculate:(weight:number,height:number)=>number;
bmi:(bmi:number)=>string;
};
export interface resultState {
results:{
bmi:number,
bmiResult:string,
}
}
结果部分给出了一个错误,我应该如何定义它?您必须将
result
更改为results
,然后您可以按如下方式初始化它:
results: {results:{bmi:0,bmiResult: 'hello'}}
请参见Put
playway
链接以执行typescript codewhat is playground这是typescript的在线编辑器。这一次,它在提供程序内部发送结果时出错。它说,;键入“{open:boolean |未定义;alert:boolean |未定义;weight:number;height:number;result:resultState;handleWeight:(event:any)=>void;handlehight:(event:any)=>void;openAlert:(event:any)=>void;openAlert:(event:any)=>void;calculate:(weight:number,height:number)=>number;体重指数:(bmi:num..不可分配给类型“BmiContextState”。对象文字可能只指定已知属性,但类型“BmiContextState”中不存在“result”。是否要写入“results”?t请将代码写入,然后在注释中添加url
,以调试该属性。您的代码有很多依赖项。是否可以删除依赖项(react和..)?我认为主要问题在于typescriptthx中的所有内容
results: {results:{bmi:0,bmiResult: 'hello'}}