react setSate 不生效的问题

叫我马爷,大声叫

1、setSate

this.state.a1=this.state.a1+1

this.setSate({a1:this.state.a1})

//这样生效吗?

不生效,因为this.state.a1 会去内存的读取,get操作,所以this.state.a1=this.state.a1+1等于不生效

2、

const [leftseconds, setleftseconds] = useState(60);
leftseconds-=1
setleftseconds(leftseconds)
 
会生效吗?
不生效
leftseconds-=1 临时生效
setleftseconds(leftseconds) //先进行get操作,读取出来的值,还是以前的,所以不生效
 
3、如何生效
  • setleftseconds(leftseconds-1)就生效了
  • let temp=_.clone(leftseconds);setleftseconds(temp)setState 和这个原理是相同的
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/sexintercourse/p/15660721.html