setState函数的参数

在使用react过程中,我们最频繁使用到的函数之一就是setState,该函数肩负着更改组件自身状态的职责。该函数的官方定义为:setState(updater[, callback]),它接受一个updater更新器和一个可选的回调函数。
第一个参数—updater: 对象或函数
假设count为当前组件的其中一状态,初始值为0,现需要对其更新+1
1,当参数为对象时:

this.setState({count: this.state.count+1});

2,当参数为函数时,它接受两个参数:当前组件的状态和属性,并返回新的状态

this.setState((state, props) => {return {count: state.count+1};
});

第二个参数—callback(可选): 如果使用了第二个参数,那么该回调函数将在状态设置完成且组件更新后被调用,且在生命周期函数componentDidUpdate后调用。即:
this.setState—>状态更新—>render(){}–>componentDidUpdate() {}—>callback。
也就是说我们可以在该回调函数中拿到最新的状态,然后进行后续的处理。当然官方不建议我们这样干,官方还是建议我们直接在componentDidUpdate中去处理我们的逻辑。

浅谈React的状态更新函数setState相关推荐

  1. 【转】浅谈React、Flux 与 Redux

    本文转自<浅谈React.Flux 与 Redux>,转载请注明出处. React React 是一个 View 层的框架,用来渲染视图,它主要做几件事情: 组件化 利用 props 形成 ...

  2. 浅谈 React 生命周期

    浅谈 React 生命周期 浅谈 React 生命周期 旧版的生命周期 新版的生命周期 详解各个生命周期函数 constructor getDerivedStateFromProps render c ...

  3. 浅谈react和vue

    浅谈React 和 Vue 相同之处: React 和 Vue 有许多相似之处,它们都有: ·       使用 Virtual DOM ·       提供了响应式 (Reactive) 和组件化 ...

  4. 浅谈Flutter的状态State

    重要消息 网易云[玩转大前端]配套课程 EDU配套 教程 Flutter开发的点滴积累系列文章 一行代代码置灰应用?对就是这么干 本方主要内容为 聊一聊 Widget .谈一谈 Context .说一 ...

  5. 浅谈 React Fiber

    2016 年都已经透露出来的概念,这都 9102 年了,我才开始写 Fiber 的文章,表示惭愧呀.不过现在好的是关于 Fiber 的资料已经很丰富了,在写文章的时候参考资料比较多,比较容易深刻的理解 ...

  6. 【转载】浅谈React编程思想

    React是Facebook推出的面向视图层开发的一个框架,用于解决大型应用,包括如何很好地管理DOM结构,是构建大型,快速Web app的首选方式. React使用JavaScript来构建用户界面 ...

  7. 浅谈React与jQuery的思维差异

    为什么越来越多的互联网公司都在转向React.js去开发前端组件,除了性能因素外,很大一部分原因是因为用jQuery去写很复杂的DOM操作,后期代码会变得越来越难维护.现在大部分的 Web APP 都 ...

  8. 浅谈React虚拟DOM

    为什么要使用虚拟DOM 因为浏览器的DOM渲染是非常消耗性能的,很低效,我们使用虚拟DOM是为了提高DOM的渲染性能: 什么是虚拟DOM 虚拟DOM就是把真实的DOM树通过createElement转 ...

  9. 浅谈React和VDom关系

    组件化 组件的封装 组件的复用 组件的封装 视图 数据 视图和数据之间的变化逻辑 import React, {Component} from 'react';export default class ...

最新文章

  1. 170亿参数加持,微软发布史上最大Transformer模型
  2. idea 高效找出全部未被使用的代码
  3. 比尔.盖茨人生的四张面孔
  4. linux在文档中查找内容,【Linux】用grep在文档中查找内容
  5. HashMap源码分析1:添加元素
  6. 一个修改RAC REDO引起的DATAGUARD错误 的处理
  7. 2014第3周四杂记
  8. SAP Cloud Platform上Fiori launchpad tile的读取原理
  9. paddlenlp 任务清单 中文分词、中文纠错、文本相似度、情感分析、词性标注等一键
  10. 2017-11-14【Python】爬虫练习
  11. python编程教学软件-编程教学平台的python编辑器的开发
  12. 如何使用Movavi Slideshow Maker进行幻灯片制作?
  13. 2寸的照片长宽各是多少_2寸照片的高和宽是多少像素?
  14. 树莓派Android Things物联网开发:已知Bug发行说明
  15. 基于Android Studio的安卓课程设计(Keep运动软件)
  16. perforce(p4)相关问题
  17. 元学习:实现通用人工智能的关键!
  18. Win10系统还原文件默认打开方式
  19. Java 面试 :乐观锁 悲观锁
  20. 小米4s真机测试运行失败

热门文章

  1. gis的计算机软件系统主要由,GIS《地理信息系统》试卷最全题库(共九套含答案)...
  2. 笔记本计算机盖上盖子关机,笔记本电脑不关机就盖上盖子,这样好吗
  3. IDEA清空控制台以及Java中运行cmd命令实现清屏操作
  4. 【DB宝48】JumpServer:多云环境下更好用的堡垒机
  5. oracle财务软件苹果电脑,收支记账本for Mac-收支记账本Mac版下载 V2.9-PC6苹果网
  6. ab 是什么意思C语言中,a/b在c语言中什么意思,c语言中ab是什么意思
  7. pca百分比取多少比较好_PCA分析
  8. ogg怎么转化mp3,ogg转mp3步骤
  9. 淘宝“双11”抗住瞬间访问量是关键
  10. java avg_JPA 查询AVG简单示例