我的编程空间,编程开发者的网络收藏夹
学习永远不晚

react怎么更新state

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

react怎么更新state

本文小编为大家详细介绍“react怎么更新state”,内容详细,步骤清晰,细节处理妥当,希望这篇“react怎么更新state”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

react更新state方法有:1、通过key变化子组件,代码如“<Children key={this.state.key} a={this.state.a} b={this.state.b} />”;2、利用ref父组件调用子组件函数;3、通过父级给子级传数据,子级只负责渲染。

react中父级props改变,更新子级state的多种方法

子组件:

class Children extends Component {  constructor(props) {     super(props);     this.state = {       a: this.props.a,       b: this.props.b,       treeData: '',       targets: '',     }    }  componentDidMount() {   const { a, b } = this.state   const data = {a,b}   fetch('/Url', {     data   }).then(res => {   if (res.code === 0) {     this.setState({     treeData: res.a,     targets: res.b,  })  } else {   message.error(res.errmsg)  }  })  } test(item1, item2) {   const data = { item1, item2 }   fetch('/Url', {data}).then(res => {     if (res.code === 0) {       this.setState({         treeData: res.a,         targets: res.b,       })     } else {       message.error(res.errmsg)     }   }) }}export default Children

方法一:巧用key

<Children key={this.state.key} a={this.state.a} b={this.state.b} /> //父组件调用子组件

这种方法是通过key变化子组件会重新实例化 (react的key变化会销毁组件在重新实例化组件)

方法二:利用ref父组件调用子组件函数(不符合react设计规范,但可以算一个逃生出口嘻嘻~)

class father extends Component {    constructer(props) {      super(props);      this.state={       a: '1',       b: '2',      }      this.myRef      this.test = this.test.bind(this)    }   change() {     const { a,b } = this.state     console.log(this.myRef.test(a,b)) // 直接调用实例化后的Children组件对象里函数    }render() { <Children wrappedComponentRef={(inst) => { this.myRef = inst } } ref={(inst) => { this.myRef = inst } } />   <button onClick={this.test}>点击</button>}}

注:wrappedComponentRef是react-router v4中用来解决高阶组件无法正确获取到ref( 非高阶组件要去掉哦)

方法三:父级给子级传数据,子级只负责渲染(最符合react设计观念)推荐!!

父组件:

class father extends Component {    constructer(props) {      super(props);      this.state={       a:'1',       b:'2',       data:'',      }    }  getcomposedata() {    const { a, b } = this.state    const data = { a, b }    fetch('/Url', {data}).then(res => {      if (res.code === 0) {        this.setState({          data:res.data        })      } else {        message.error(res.errmsg)      }    })  }render() { <Children data={this.state.data}} />  }}

子组件:

  componentWillReceiveProps(nextProps) {    const { data } = this.state    const newdata = nextProps.data.toString()    if (data.toString() !== newdata) {      this.setState({        data: nextProps.data,      })    }  }

注:react的componentWillReceiveProps周期是存在期用改变的props来判断更新自身state

读到这里,这篇“react怎么更新state”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

react怎么更新state

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

react怎么更新state

本文小编为大家详细介绍“react怎么更新state”,内容详细,步骤清晰,细节处理妥当,希望这篇“react怎么更新state”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。react更新state方法有:1、通
2023-07-04

react更新state方法有哪些

react更新state方法有:1、通过key变化子组件,代码如“<Children key={this.state.key} a={this.state.a} b={this.state.b} />”;2、利用ref父组件调用子组件函数;3、通过父级给子级传数据,子级只负责渲染。
2022-11-22

react如何获取state的值并更新使用

这篇文章主要介绍了react如何获取state的值并更新使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

react怎么修改state

今天小编给大家分享一下react怎么修改state的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。react改变state的方
2023-07-04

react 怎么实现热更新

react实现热更新的方法:1、使用“yarn add react-hot-loader -D”命令下载“react-hot-loader”;2、添加“react-hot-loader/babel”进入“.babelrc”文件;3、 在App.js中修改为代码为“import { hot } from 'react-hot-loader/root';”即可。
2023-05-14

react视图不更新怎么办

react视图不更新是因为数组的赋值是引用传递的,其解决办法:1、打开相应的react文件;2、通过使用“let data = [...this.state.data];”新数组方式实现视图更新即可。
2023-05-14

React怎么更新流程驱动

这篇文章主要介绍了React怎么更新流程驱动的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇React怎么更新流程驱动文章都会有所收获,下面我们一起来看看吧。一、react.createElement和React
2023-07-06

react怎么修改state中的数组

要修改state中的数组,可以使用setState方法更新state的值。在React中,不应直接修改state中的值,而是应该创建一个新的数组,并将其赋给state。示例代码如下:```jsxclass MyComponent exten
2023-09-13

react数组变化不更新怎么办

react数组变化不更新是因为在js中数组的赋值是引用传递的,其解决办法:1、打开相应的react文件;2、使用扩展运算符,创建一个新数组,更改内存引用;3、使用“panes.push({key: panes.length,tab: `${panes.length + 1}`})”方式重新赋值即可。
2023-05-14

React Fiber树是怎么构建与更新的

这篇文章主要讲解了“React Fiber树是怎么构建与更新的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React Fiber树是怎么构建与更新的”吧!为什么需要 fiberLin Cl
2023-07-04

React Native怎么采用Hermes热更新打包

这篇文章主要介绍“React Native怎么采用Hermes热更新打包”,在日常操作中,相信很多人在React Native怎么采用Hermes热更新打包问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Rea
2023-06-30

react如何实现热更新

这篇文章主要讲解了“react如何实现热更新”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react如何实现热更新”吧!react实现热更新的方法:1、使用“yarn add react-h
2023-07-04

React三大属性之state有什么用

这篇文章给大家分享的是有关React三大属性之state有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。React中很多地方需要用到数据,这在React中被叫做状态,我们需要一个专门管理状态的方法,于是st
2023-06-14

react中props和state的区别是什么

在React中,props和state是两个不同的概念,用于处理组件的数据。它们之间的区别如下:1. Props(属性):- Props是组件的属性,是从父组件传递给子组件的数据。- Props是只读的,子组件不能修改自己的props,只能
2023-09-13

react怎么更改对象

react更改对象属性的方法:1、在state中定义一个对象;2、给obj对象动态增加name和age两个属性并初始化赋值;3、使用“Object.assign()”方法来更改整个对象即可。
2023-05-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录