使用名称中的变量值访问redux存储

时间:2019-10-08 08:56:43

标签: javascript reactjs redux react-redux

在我的应用程序中,我将复制同一对象。由于建议保持状态尽可能平坦,因此我基本上在状态中创建了多个对象,如下所示:

const initialState = {
    test1: {},
    test2: {},
    test3: {},
}

我设法通过文件连接到商店,但是访问所需的对象时遇到了麻烦,特别是因为我只知道索引(1、2、3)。

我已将状态映射到道具:

const mapStateToProps = state => {
  return {
    test1: state.test1,
    test2: state.test2,
    test3: state.test3,
  }
}

然后我尝试沿着这些思路做些事情:

let index = 2;
let infos = this.props.[`test${index}`]

但是这不起作用,除了对索引进行一些难看的切换外,我看不到获取所需对象的另一种方法

2 个答案:

答案 0 :(得分:1)

您的错误是尝试使用this.props.访问状态对象,然后尝试评估变量,您可以执行以下操作:

const index = 2;
const infos = this.props[`test${index}`];

答案 1 :(得分:0)

尝试这样

let index = 2;
let propname = `test${index}`;
let infos = this.props[propname]