使用变量访问道具

时间:2018-02-11 20:08:46

标签: javascript reactjs react-redux

我正在尝试使用变量名访问props中的状态数据。这是我到目前为止尝试过的,但没有奏效。

我想在道具中访问以下项目:

function mapStateToProps(state) {
    return {
        redCar: state.cars.redCar,
        blueCar: state.cars.blueCar
    }
}

红色和蓝色汽车都是这样的物体:

{
   id: "red-car",
   year: 2017,
   make: "Infiniti",
   model: "QX 80"
}
{
   id: "blue-car",
   year: 2018,
   make: "RAM",
   model: "1500"
}

我正在尝试使用下面的变量来访问make和model,但这些变量无效。我得到“未定义”:

handleChange(car, propertyName, value) {

   const currentValue = this.props[car][propertyName];
}

如何使用变量名访问我的道具?

2 个答案:

答案 0 :(得分:2)

for host in hostnames:
  df_temp = df.loc[host]
  df_temp = df_temp.subtract(df_temp.mean(axis=0))
  df.loc[host] = df_temp

在此功能中,您指定您的道具上有名为function mapStateToProps(state) { return { redCar: state.cars.redCar, blueCar: state.cars.blueCar } } redCar的钥匙。

blueCar

在这里,您尝试使用括号表示法来访问该属性。括号表示法仅在传入括号的字符串拼写与键的名称完全相同时才有效,在您的情况下不是。该属性可以是handleChange(car, propertyName, value) { const currentValue = this.props["car"]["propertyName"]; } redCar,但不是blueCar

假设传递给"car"函数的car参数可以具有handleChangeredCar的值,您可以像这样重写代码,

blueCar

Bracket notation

答案 1 :(得分:0)

car变量的值是redCar还是blueCar

然后你可以这样做:

handleChange(car, propertyName, value) {
  const currentValue = this.props[car][propertyName];
}