Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更改setState中的object.item_Reactjs_Setstate - Fatal编程技术网

Reactjs 更改setState中的object.item

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, ', '

如何通过setState更改getInitialState中对象中的项

例如:

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我认为最好再发布一个问题来回答这个问题,但简而言之,听起来您正在迭代的对象可能有嵌套对象或嵌套集合(数组)?我很乐意提供更多帮助,但如果没有看到数据,也不知道期望的输出是什么,我真的帮不了什么忙。