react setState疑问

这两个fetch返回结果分别执行setState。

关于这部分我有一点没明白:

两次setState时间点不同,如何理解下面的“完全替换”?

这里的合并是浅合并,所以 this.setState({comments}) 完整保留了 this.state.posts, 但是完全替换了 this.state.comments

回答

红框里是用 this.setState({comments}) 来举例,试图说明:你在替换 this.state.comments 的时候,不会影响到 this.state.comments,反过来也是成立的,各个子项互不干扰,这样的更改很“浅” 。

至于“合并”,大意就是:this.state 始终是同一个 state 实例,所有的更改不过是改变它的各个子项罢了,等于是把其他的内容“合并”到这个 state 实例上来。

所说的合并类似于

Object.assign( this.state, { comments: response.comments } );

也就是

Object.assign(

{ comments: [], ports: [] },

{ comments: response.comments }

);

以上是 react setState疑问 的全部内容, 来源链接: utcz.com/a/28227.html

回到顶部