setState总结

简介: setState总结

1. 前言

  1. 总结下setState用法
  2. 不要直接修改 State

2.  第一个参数是函数

state的更新异步的,所以React会把多个setState调用合并成一个调用

所以下面的代码可能导致无法更新计数器

错误的写法

this.setState({
  counter: this.state.counter + this.props.increment,
});

正确的写法

this.setState((state, props) => ({
  counter: state.counter + props.increment
}));

参数1: 旧的state 可选参数

参数2: props     可选参数


3. 第一个参数是 对象

this.setState({
   name: 'yzs',
   age:32
});
//错误的写法
this.state.name = 'yzs'

4. 第二个参数是函数

this.setState({
                num:this.state.num +100
        },()=>{
      // 异步函数 DOM更新末尾执行的
        console.log("react --nextTick:",this.refs.testRef.innerHTML);
 //****************** 简洁写法
        console.log("简洁获取DOM:",this.yzsRef.innerHTML);
          })

1.第二个参数是函数,第一个参数对象或者是函数都不影响

2.第二个参数是函数:作用相当于 vue的 nextTick 在 OM 更新循环结束之后执行延迟回调,获取更新后的DOM


参考资料

state


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
6月前
|
前端开发
为什么调用setState而不是直接改变state
为什么调用setState而不是直接改变state
50 0
|
16天前
|
前端开发
在 componentWillMount 中调用 setState 会发生什么
在 `componentWillMount` 生命周期方法中调用 `setState` 会导致组件在初始渲染前进行额外的状态更新和重新渲染,可能影响性能并引发潜在的逻辑问题。建议避免在这种情况下使用 `setState`。
|
1月前
|
前端开发 开发者
为什么调用 setState 而不是直接改变 state
为什么调用 setState 而不是直接改变 state
|
6月前
setState 和 replaceState 的区别
setState 和 replaceState 的区别
51 2
|
6月前
|
前端开发
setState和repalceState的区别
setState和repalceState的区别
56 0
|
6月前
|
前端开发
React中setState方法详细讲解
React中setState方法详细讲解
|
6月前
|
前端开发
对比state和props的区别
对比state和props的区别
|
6月前
|
前端开发 JavaScript
设置状态:setState
设置状态:setState
|
11月前
|
前端开发
setState异步问题
setState异步问题
57 0
|
前端开发 算法
调用setState后发生了什么?
调用setState后发生了什么?
193 0