Javascript 基于字符串连接从对象获取值

Javascript 基于字符串连接从对象获取值,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我有一个用React&Typescript编写的小网站,它使用springboot后端。我现在正试图在上面实现多种语言,但我遇到了一个问题 在实现语言之前,这个问题并不存在,因为我可以根据它的名称获取值: <div className="product-category-list"> {props.productCategory.map(function (item, id) { return <div className="produ

我有一个用React&Typescript编写的小网站,它使用springboot后端。我现在正试图在上面实现多种语言,但我遇到了一个问题

在实现语言之前,这个问题并不存在,因为我可以根据它的名称获取值:

<div className="product-category-list">
  {props.productCategory.map(function (item, id) {
    return <div className="product-category-div">
      <img className="product-category-image" src={"data:image/png;base64, " + item.picture}/>
      <p className="product-category-title">{ item.name }</p>
    </div>
  })}
</div>
由于此更改,网站在前端显示字符串
item.nameEN
item.nameNL
,而不是值。我尝试了几种方法来修复它,并对其进行了研究,但我找不到关于这个具体问题的任何信息

我正在寻找一种能够获取基于字符串连接构建的项键的值的方法。任何帮助都将不胜感激,因为我被困住了


谢谢大家!

让我们看一看您之前说过的代码:

{item.name}

在这里,您正在访问对象
的属性
名称

在新代码中:

{“item.name”.concat(getLanguage().toUpperCase())}

这里只返回一个值为
“item.nameEN”
的字符串,而不访问名为
item
的对象

您想要的是仍然访问
,但要使用动态构建的密钥来访问。试试这个:

{item[“name”+getLanguage().toUpperCase()}

刚刚替换

"item.name".concat(getLanguage().toUpperCase())


应该可以正常工作

您是否锁定为每种语言使用单独的项目键?为什么不让name元素本身成为一个dictionary,其中key=language,value=required string?这确实解决了这个问题,我不知道它是这样工作的。由于typescript,我不得不实现一些接口交叉,但现在它可以工作了,谢谢!
"item.name".concat(getLanguage().toUpperCase())
item["name" + getLanguage().toUpperCase()