Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 “什么是”呢;“状态更新已合并”;这句话的意思是什么?_Reactjs - Fatal编程技术网

Reactjs “什么是”呢;“状态更新已合并”;这句话的意思是什么?

Reactjs “什么是”呢;“状态更新已合并”;这句话的意思是什么?,reactjs,Reactjs,我是个初学者, 我读了react.org上的文件,有一部分我不明白。 它是从 在“文档->主要概念->5.状态和生命周期->状态更新合并”中。 我不明白为什么要使用两个fech()。然后更改状态和参数“response”是什么 很抱歉我的英语不好。状态更新被合并意味着当您只更新对象状态中的一个键时,它不会影响其他键 例如,假设您的状态如下: this.state = { key1 : value1, key2 : value2 } 如果使用此.setState,例如: this.setSta

我是个初学者, 我读了react.org上的文件,有一部分我不明白。

它是从

在“文档->主要概念->5.状态和生命周期->状态更新合并”中。 我不明白为什么要使用两个fech()。然后更改状态和参数“response”是什么


很抱歉我的英语不好。

状态更新被合并意味着当您只更新对象状态中的一个键时,它不会影响其他键

例如,假设您的状态如下:

this.state = { key1 : value1, key2 : value2 }
如果使用此.setState,例如:

this.setState({ key1 : value3 }
您的新州将是:

this.state = { key1 : value3, key2 : value2 }
它已将更新与现有状态合并,这意味着它不会影响key2。如果不合并状态更新,则新状态将被合并

this.state = { key1 : value 3}
并且key2将不再存在于您的状态中,因为它没有在更新中定义

合并会影响更新中未包含的键/值对

也就是说,如果在同一个函数中有不同的this.setState({}),那么所有的更新都将被收集在一起,并且状态更新只会发生一次

在文档的示例中,使用了两个不同的获取函数,因为它们各自具有不同的角色,第一个是获取帖子,因此setState更新帖子(并且不影响this.state.comments,因为“state update are merged”),第二个是获取评论,使用新注释更新状态,并且不影响this.state.posts值


编辑:response参数是从函数fetch中得到的响应,该函数通常从源(您的数据库、外部API…)中获取数据

该示例的概念与fetch无关,该示例说明,即使在同一个函数中调用两个set状态,设置状态中存在的变量是完全独立的。但是,当状态更新时,它们会合并为一个更新。

您能详细解释一下您的问题吗?如果您对fetch()及其响应一无所知,请阅读以下内容: