React使用对象值作为状态变量名称

时间:2019-03-03 22:15:42

标签: javascript reactjs object

我想使用一个对象的值访问状态变量名称

例如:

const displayName = [
    {
        name: 'name', //Actually this is the state variable name 
        displayText: 'Name: '
    },
    {
        name: 'email',
        displayText: 'E-mail ID: '
    }
]

{
displayName.map(obj =>  (
    <p>{obj.displayText}</p>
    <div>
        {this.state.data.obj.name} //Here am facing issue. The state variables are: this.state.data.name and this.state.data.email. How to replace the obj.name here
    </div>
)
} 

状态变量是:this.state.data.name和this.state.data.email。如何在此处替换obj.name

如果我给{this.state.data.obj.name},则会抛出类似name not found的错误

1 个答案:

答案 0 :(得分:2)

使用变量作为键时,需要使用方括号

this.state.data[obj.name]

在方括号中,您的解决方案要求:

this.state['data']['obj']['name']