Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Typescript中使用动态键名访问状态_Javascript_Reactjs_Typescript_Typescript2.0_React State - Fatal编程技术网

Javascript 在Typescript中使用动态键名访问状态

Javascript 在Typescript中使用动态键名访问状态,javascript,reactjs,typescript,typescript2.0,react-state,Javascript,Reactjs,Typescript,Typescript2.0,React State,我有一种类似这样的反应状态: type MyState = { xCount: number; yCount: number; }; returnState = (name: keyof MyState) => { return this.state[name]; } 我想在编写程序时访问一个状态而不知道它的名称 export class BodyWidget extends React.Component<BodyWidgetProps> { stat

我有一种类似这样的反应状态:

type MyState = {
  xCount: number;
  yCount: number;
};
returnState = (name: keyof MyState) => {
    return this.state[name];
}
我想在编写程序时访问一个状态而不知道它的名称

export class BodyWidget extends React.Component<BodyWidgetProps> {
  state: MyState = {
    xCount: 1,
    yCount: 1
  };

returnState = (name:any) {
  return this.state[name]
}

...
}
导出类BodyWidget扩展React.Component{
状态:MyState={
数量:1,
Y计数:1
};
returnState=(名称:any){
返回此。状态[名称]
}
...
}
当我尝试此操作时,会出现以下错误:

元素隐式具有“any”类型,因为“any”类型的表达式不能用于索引类型“MyState”

试一试


错误表示“name”应该是MyState属性之一(xCount或yCount),如下所示:

type MyState = {
  xCount: number;
  yCount: number;
};
returnState = (name: keyof MyState) => {
    return this.state[name];
}