this.setState的两个注意点

简介: this.setState的两个注意点

this.setState的两个注意点

 

目录

一、注意点一

二、注意点二

 

export default class BindEvent extends React. Component {

constructor(){

super()

this.state = {

msg:‘哈哈'

}

现在只为 state 绑定了 msg,再来一个:

name :zs

age: 22,

gender :‘男’

image.png

保存后会发现页面没有任何触发,点击 button 按钮会调用show 方法,在 show 方法内部需要为 msg 重新赋值:

this.setState({msg: '123' +arg1 + arg2}

 

一、注意点1


当前在 setState只提供了 msg 没有提供其他的,调用完 setstate 状态都存在。

image.png

此时,根据上图结果显示,可以得出一个结论,在setState 中只会把对应的 state 状态更新;而不会覆盖其他的 state 状态。

调用完 SetState msg是最新的状态,如果想立即 console 最新的 msg的值应该:

console.log(this.state.msg)

此时在 console 里还是哈哈,因为 this.setState 没有执行完,console.log(this.state.msg)就已经执行了。

 

 

二、注意点二


this.setState方法的执行,是异步的;

如果大家在调用完 this.setState之后,又想立即拿到最新的 state值,需要使用:

this.setState({ }, callback)

所以写入:this.setstate({

setState

msg: '123' + arg1 + arg2

}function(){ //回调

console.log(this.state.msg)

}

设置完毕后会执行这个文件,在回调里是最新的。

相关文章
|
4月前
|
前端开发
为什么调用setState而不是直接改变state
为什么调用setState而不是直接改变state
36 0
|
2月前
|
前端开发
useEffect问题之为什么使用useEffect来在props改变时重置state是低效的
useEffect问题之为什么使用useEffect来在props改变时重置state是低效的
|
4月前
setState 和 replaceState 的区别
setState 和 replaceState 的区别
34 2
|
4月前
|
前端开发
setState和repalceState的区别
setState和repalceState的区别
39 0
|
10月前
|
JavaScript 前端开发
setState总结
setState总结
44 1
|
4月前
|
前端开发
React中setState方法详细讲解
React中setState方法详细讲解
|
4月前
|
前端开发 JavaScript
设置状态:setState
设置状态:setState
|
9月前
|
前端开发
setState异步问题
setState异步问题
51 0
|
前端开发
React setState执行两次的问题
React setState执行两次的问题解决修复。
419 1
React setState执行两次的问题
|
前端开发 算法
调用setState后发生了什么?
调用setState后发生了什么?
180 0