Reactjs 更改setState中的object.item
如何通过setState更改getInitialState中对象中的项 例如:Reactjs 更改setState中的object.item,reactjs,setstate,Reactjs,Setstate,如何通过setState更改getInitialState中对象中的项 例如: getInitialState: function() { return {list: [ {id:'1', title: 'The Baby Boss', year: '2017', quality: 'Blu-ray', stars: ['Fred Astaire, ', 'Humphrey Bogart, ', 'Marlon Brando, ', '
getInitialState: function() {
return {list: [
{id:'1',
title: 'The Baby Boss',
year: '2017',
quality: 'Blu-ray',
stars: ['Fred Astaire, ', 'Humphrey Bogart, ', 'Marlon Brando, ', 'Richard Burton, ', 'Charlie Chaplin'],
Show: false
},
{
id:'2',
title: 'Pirates of the Caribbean: Dead Men Tell No Tales ',
year: '2016',
quality: 'HDrip',
stars: ['John Depp, ', 'Orlando Bloom, ', 'Javier Bardem, ', 'Kaya Scodelario, ', 'Brenton Thwaites'],
Show: true
}`
更清楚。我已经创建了getInitialState
,然后render
ed它,并在屏幕上显示列表对象。我有一个按钮,我想点击它并改变其中一个对象的smth。通过列表中的项目,我使用“映射”功能。因此,我尝试执行smth,如下代码所示:
this.setState({
film.Show: false
})
但这种方法行不通。哪种方式达到我的目标是正确的?谢谢你的想法。你需要找到你的目标项目并更新:
someEventHandler: function(targetId) {
this.setState({
list: this.state.list.map(function(film) {
if (film.id === targetId) {
film.Show = false;
}
return film;
})
});
}
您需要找到目标项目并更新:
someEventHandler: function(targetId) {
this.setState({
list: this.state.list.map(function(film) {
if (film.id === targetId) {
film.Show = false;
}
return film;
})
});
}
我没有完全理解你的问题。您是否想知道如何在getInitialState发生后更改状态?我添加了更多详细信息。希望清楚。我不完全理解你的问题。您是否想知道如何在getInitialState发生后更改状态?我添加了更多详细信息。希望清楚。非常感谢。它起作用了。但我还是想澄清一下。当我们需要获得一个或多个对象的某个项目时,我们需要使用函数进行操作?很高兴提供帮助!你能提供一个更具体的例子吗?我不明白你所说的“获取一个或多个对象的对象的某个项”是什么意思,例如,当我们给getInitialState对象赋值时,其中一个项等于具有其他项的对象。如何获取嵌套对象的这些项?@KirillStas我认为最好再发布一个问题来回答这个问题,但简而言之,听起来您正在迭代的对象可能有嵌套对象或嵌套集合(数组)?我很乐意提供更多的帮助,但是没有看到数据,也不知道期望的输出是什么,我真的帮不了什么忙。非常感谢。它起作用了。但我还是想澄清一下。当我们需要获得一个或多个对象的某个项目时,我们需要使用函数进行操作?很高兴提供帮助!你能提供一个更具体的例子吗?我不明白你所说的“获取一个或多个对象的对象的某个项”是什么意思,例如,当我们给getInitialState对象赋值时,其中一个项等于具有其他项的对象。如何获取嵌套对象的这些项?@KirillStas我认为最好再发布一个问题来回答这个问题,但简而言之,听起来您正在迭代的对象可能有嵌套对象或嵌套集合(数组)?我很乐意提供更多帮助,但如果没有看到数据,也不知道期望的输出是什么,我真的帮不了什么忙。