使用React Redux从字符串值调用变量[重复]

b4wnujal  于 2023-01-21  发布在  React
关注(0)|答案(2)|浏览(149)
    • 此问题在此处已有答案**:

Convert string to variable name in JavaScript(11个答案)
"Variable" variables in JavaScript(8个答案)
3天前关闭。
还在学习react,很难找到这个问题的解决方案。
我在redux切片的initialState中有一系列数组,即

const initialState = {
   sprites: {
      one: [1, 2, 3],
      two: [4, 5, 6],
      three: [7, 8, 9]
   }
}

在应用程序中,当用户单击某个特定按钮时,除其他事项外,我还需要获取相关数组的长度。
下面是该应用程序的一个示例:

<Component onClick={() => {dispatch(checkArray("one"))}/>

减速器:

checkArray: (state, {payload}) => {
   var arrayLength = state.sprites.{payload}.length;
   console.log(arrayLength);
}

显然,这并没有产生预期的效果,使用{payload}只会抛出一个错误,但是我如何转换有效负载,以产生state.sprites.one.length数组长度的数值呢?
谢谢

w8rqjzmb

w8rqjzmb1#

使用括号表示法。

state.sprites[payload].length;
rxztt3cl

rxztt3cl2#

如果你想使用变量访问对象的属性,请使用方括号表示法。使用方括号表示有效负载变量,而不是点表示法和大括号,如下所示:

checkArray: (state, {payload}) => {
var arrayLength = state.sprites[payload].length;
console.log(arrayLength);
}

相关问题