Reactjs 在react js中设置状态,使用ES6解构

Reactjs 在react js中设置状态,使用ES6解构,reactjs,Reactjs,我有一个设置状态的react代码:: onMoveUp={(ids: SelectedIdMap) => { this.setState({ xyz: { ...this.state.xyz, [tt]: [ ...this.state.xyz[tt].filter(a => (a.id in ids)),

我有一个设置状态的react代码::

onMoveUp={(ids: SelectedIdMap) => {
              this.setState({
                xyz: {
                  ...this.state.xyz,
                  [tt]: [
                    ...this.state.xyz[tt].filter(a => (a.id in ids)),
                    ...this.state.xyz[tt].filter(a => !(a.id in ids)),
                  ],
                },
              });
            }}
此代码将传递的数组元素(ID)的索引更改为数组的顶部

当前状态如下所示:

{"51f6c052-b218-45ce-b3db-c9b95249e03a":[{"id":"11553dc4-d194-476c-9e05-aaac28ea3e76","prediction":"India–Japan relations","confidence":1},{"id":"3f76ce1d-a821-4418-a332-3285176ae456","prediction":"Japan Democratic Party (1954) politicians","confidence":1},{"id":"031d3913-984a-4af7-aaa3-73e23c206ff1","prediction":"Japan–Taiwan relations","confidence":1}]}
我无法理解此代码中的[tt]是什么意思以及它是如何更新的

ids = 11553dc4-d194-476c-9e05-aaac28ea3e76 in the parameter.

这是一个愚蠢的问题,但请帮助我理解。

这只是
js
中的
Computed property name
概念。这意味着我们可以在运行时使用任何有效的js表达式来计算属性名

根据:

从ECMAScript 2015开始,对象初始值设定项语法 支持计算属性名。这允许你把一个表达式 在括号[]中,将计算并用作属性名称。 这让人想起属性访问器的括号符号 语法

编写可重用代码而不是硬编码值是很有帮助的

检查此代码段:

var obj={“1234”:1,“3412”:2},
a=“34”,b=“12”;
var newObj={
[a+b]:对象[a+b],
[b+a]:对象[b+a],
[10+20+30]: 60
}
log('newObj=',newObj)
[tt]
表示“将对象键设置为名为
tt
的变量的值”。您提供的代码没有显示在哪里定义了
tt
,可能它在该文件的其他地方