ReactJS-数组中对象键的setState

因此,我已经进行了一段时间的尝试,并认为最好重构我的代码,以便将状态设置为对象数组。我想做的是单击按钮时增加一个数字。

我在组件中有一个回调函数,可触发一个函数来更新状态…但是,我很难将对象内的键值作为目标。

我的初始状态如下:

getInitialState: function() {

return {

items: [

{

links: 'zest',

trackId: 1023,

songTitle: 'z know the others',

artist: 'zuvet',

upVotes: 0

},

{

links: 'alpha',

trackId: 987,

songTitle: 'ass',

artist: 'arme',

upVotes: 3

},

]

}

我正在尝试锁定upVotes键,但不知道如何操作。我的函数传递了一个键,以便可以将数组中的索引作为目标,但是当我尝试执行以下操作时:this.setState({items[key]:{upVotes: this.state.items[key].upVotes + 1}})由于意外的[令牌,它会引发错误。

我曾尝试与此类似线程的东西在这里,但我不断收到错误。

我可以编写什么样的函数来将要定位的对象的键的setState设置为setState?

回答:

获取当前状态,对其进行修改setState()

var stateCopy = Object.assign({}, this.state);

stateCopy.items[key].upVotes += 1;

this.setState(stateCopy);

这会改变状态。这是不做任何更改的方法:

var stateCopy = Object.assign({}, this.state);

stateCopy.items = stateCopy.items.slice();

stateCopy.items[key] = Object.assign({}, stateCopy.items[key]);

stateCopy.items[key].upVotes += 1;

this.setState(stateCopy);

以上是 ReactJS-数组中对象键的setState 的全部内容, 来源链接: utcz.com/qa/403585.html

回到顶部