reactjs 如何访问对象的动态密钥?

dddzy1tm  于 2022-12-22  发布在  React
关注(0)|答案(1)|浏览(125)

我想访问record.year的值,但是我希望它是动态的,根据我的理解,我也可以通过record[“year”]来获得相同的值。
在本例中,我希望图表动态接受不同的x-y轴,因此我使用fields[0],它返回键的字符串。fields[0] = "year";,但是我得到了一个错误。
下面是我的代码,第3行没有给予错误,而第2行给出了错误。

data: records.map(record => { 
          // return { x: record[fields[0]], y: record.employment_rate_overall }  //fields[0] = "year";
          return { x: record["year"], y: record.employment_rate_overall }
        })

错误为No index signature with a parameter of type 'string' was found on type {object}。我已确认字段[0]是字符串。
我已经尝试了someObj[field as keyof ObjectType]以及someObj[field as keyof typeof someObj],它没有工作。
编辑:
x一个一个一个一个x一个一个二个x

krcsximq

krcsximq1#

你可以这样做

const fields = ['basic_monthly_mean', 'year'] as const; // and all the other fields
type Record = {[k in typeof fields[number]]: string};
type Records = Record[];

缺点:类型为number_id不适合放在这里,因此您可能必须将Record Package 为

type RecordWithId = {
  _id: number
  record: Record
}

type Records = RecordWithId[];

相关问题