通过动态密钥获取状态值

时间:2017-05-15 17:17:29

标签: javascript reactjs

让我们在我的组件中说我设置状态如下:

this.setState({
      test: "value",
      othertest: "value"        
});

如果在我的代码中的其他地方,我有一个包含这些值的键的数组,ie- keys = ["test", "othertest"]如何循环遍历此数组以查找相应状态值的值?

2 个答案:

答案 0 :(得分:13)

状态是一个对象,因此您可以通过以下方式访问任何值:

this.state[key]

使用任何循环map, forEach等来迭代array并按this.state[key]访问该值,如下所示:

a.forEach(el => console.log(this.state[el]))

检查此代码段:

let state = {a: 1, b: 2};
let arr = ['a', 'b'];

let values = arr.map(el => state[el])

console.log(values);

答案 1 :(得分:1)

由于数组访问语法,您可以使用变量访问对象的属性(如状态):

let state = {a: 1, b: 2}
let myKey = 'a';

console.log(state[myKey]) // 1

因此,要获取键数组的所有值,请映射键数组并检索每个键的状态值。

let values = keys.map(key => this.state[key])