React 组件中的state和setState

Posted david_远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React 组件中的state和setState相关的知识,希望对你有一定的参考价值。

state的基本使用

  • 状态(state)即数据,是组件内的私有数据,只可以在组件的内部使用
  • state的值是对象,意为一个组件中有多个数据

初始化state:
在这里插入图片描述

  • 获取状态:this.state
    在这里插入图片描述

setState()修改状态

  • 状态是可以改变的
  • 语法:this.setState({要修改的数据})
  • 不要直接修改state中的值
  • setState()作用:修改state 更新UI(页面渲染新数据)
  • 数据驱动视图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

从JSX中抽离事件处理程序

  • JSX中掺杂过多JS逻辑代码,会显得非常混乱
  • 推荐︰将逻辑抽离到单独的方法中,保证JSX结构清晰
    在这里插入图片描述
    点击之后报如下错误
    在这里插入图片描述
  • 原因 :事件处理函数中this为undefined
  • 我们想要this指向组件实例(render方法中的this即为组件实例)

事件绑定 this指向

  • 箭头函数
    1、利用箭头函数自身不绑定this的特点
    2、render()方法中的 this为组件实例,可以获取到setState)

在箭头函数中使用就可以使用了
在这里插入图片描述

  • 利用bind方法(Function.prototype.bind0)
    1、利用ES5中的bind方法,将事件处理程序中的this与组件实例绑定到一起
    在这里插入图片描述
  • class的实例方法(推荐)
    1、利用箭头函数形式的class实例方法
    2、注意:该语法是实验性语法,但是,由于babel的存在可以直接使用
    在这里插入图片描述

以上是关于React 组件中的state和setState的主要内容,如果未能解决你的问题,请参考以下文章

state和setState分析

[react] 在React中组件的state和setState有什么区别?

react setState

react中的setState在react组件中不起作用

React 6/100 React原理 | setState | JSX语法转换 | 组件更新机制

react父亲怎么获取子组件的state