iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >react视图不更新如何解决
  • 431
分享到

react视图不更新如何解决

2023-07-04 21:07:51 431人浏览 泡泡鱼
摘要

本篇内容主要讲解“React视图不更新如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react视图不更新如何解决”吧!react视图不更新是因为数组的赋值是引用传递的,其解决办法:1、打

本篇内容主要讲解“React视图不更新如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react视图不更新如何解决”吧!

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

React 数组变化不引起视图更新

import React, { Component } from 'react';import './App.CSS';import Todo from './components/todo/index'import { Table, Button } from 'element-react';class App extends Component {  constructor(props) {    super(props);    this.state = {      columns: [        {          label: "日期",          prop: "date",          width: 180        },        {          label: "姓名",          prop: "name",          width: 180        },        {          label: "地址",          prop: "address"        }      ],      data: [{        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄'      }, {        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄'      }, {        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄'      }, {        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄'      },{        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄'      }, {        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄'      }, {        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄'      }, {        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄'      }]    }  }  render() {    return (     <div>       <Todo list={this.state.data}/>       <Table           style={{width: '100%'}}           columns={this.state.columns}           data={this.state.data}       />       <Button type="primary" onClick={this.aDDData.bind(this)}>添加</Button>     </div>    );  }  addData () {    let obj = {      date: '2018-05-07',      name: '小明',      address: ''    };    let data = this.state.data;    data.push(obj);    this.setState({      data: data    });    console.log(this.state);  }}export default App;

上面代码中 通过setState设置data的值发现视图并没有更新,原因是数组的赋值是引用传递的,data = this.state.data是执行data这个数组的内存,所以执行data.push(obj)实际上相当于执行了 this.state.data.push(obj),所以react的虚拟dom发现state里面的data没有变化,所以不更新视图,而这时可以使用一个新数组:

 let data = [...this.state.data];

代码改为:

import React, { Component } from 'react';import './App.css';import Todo from './components/todo/index'import { Table, Button } from 'element-react';class App extends Component {  constructor(props) {    super(props);    this.state = {      columns: [        {          label: "日期",          prop: "date",          width: 180        },        {          label: "姓名",          prop: "name",          width: 180        },        {          label: "地址",          prop: "address"        }      ],      data: [{        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄'      }, {        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄'      }, {        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄'      }, {        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄'      },{        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄'      }, {        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄'      }, {        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄'      }, {        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄'      }]    }  }  render() {    return (     <div>       <Todo list={this.state.data}/>       <Table           style={{width: '100%'}}           columns={this.state.columns}           data={this.state.data}       />       <Button type="primary" onClick={this.addData.bind(this)}>添加</Button>     </div>    );  }  addData () {    let obj = {      date: '2018-05-07',      name: '小明',      address: ''    };    let data = [...this.state.data];    data.push(obj);    this.setState({      data: data    });    console.log(this.state);  }}export default App;

这样data比对以后会react会检测新旧的变化而更新dom。

到此,相信大家对“react视图不更新如何解决”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: react视图不更新如何解决

本文链接: https://www.lsjlt.com/news/347637.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • react视图不更新如何解决
    本篇内容主要讲解“react视图不更新如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react视图不更新如何解决”吧!react视图不更新是因为数组的赋值是引用传递的,其解决办法:1、打...
    99+
    2023-07-04
  • react视图不更新怎么办
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react视图不更新怎么办?React 数组变化不引起视图更新import React, { Component } from 'react...
    99+
    2023-05-14
    React
  • vue中数据更新视图不更新怎么解决
    本文小编为大家详细介绍“vue中数据更新视图不更新怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中数据更新视图不更新怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue数据更新视图不更新d...
    99+
    2023-07-02
  • react数组变化不更新如何解决
    本文小编为大家详细介绍“react数组变化不更新如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“react数组变化不更新如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。react数组变化不更新是因为...
    99+
    2023-07-04
  • 如何解决AngularJS中ng-repeat不更新视图的问题
    这篇文章主要介绍如何解决AngularJS中ng-repeat不更新视图的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在写AngularJS项目中,遇到一个问题,先对数组进行赋...
    99+
    2024-04-02
  • react native更新失效如何解决
    这篇文章主要介绍了react native更新失效如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react native更新失效如何解决文章都会有所收获,下面我们一起来看看吧。react native更...
    99+
    2023-07-05
  • Vue数据更新视图不更新的几种解决方案小结
    目录Vue数据更新视图不更新的几种解决知识拓展对象属性的添加或删除异步更新队列Object.assign方法vue多层循环Vue更改了数据但是视图却没有更新Vue数据更新视图不更新的...
    99+
    2022-11-13
    Vue数据更新 Vue视图不更新 Vue数据
  • 解决vue中数据更新视图不更新问题this.$set()方法
    目录vue数据更新视图不更新解决问题vue数据不更新的原因(数据更改了,但是视图没有更新)解决办法具体流程如下数组更新检测注意事项对象更改检测注意事项vue数据更新视图不更新 1.d...
    99+
    2024-04-02
  • react不自动刷新如何解决
    这篇文章主要介绍了react不自动刷新如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react不自动刷新如何解决文章都会有所收获,下面我们一起来看看吧。react不自动刷新的解决办法:1、找到“pack...
    99+
    2023-07-04
  • oracle视图数据如何更新
    在Oracle中,视图是基于表的查询结果的虚拟表。视图本身不存储数据,而是从基表中检索数据。因此,无法直接对视图进行数据更新。但是,...
    99+
    2023-08-08
    oracle
  • win10更新不了如何解决
    这篇文章主要介绍了win10更新不了如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10更新不了如何解决文章都会有所收获,下面我们一起来看看吧。方法一:删除旧的wi...
    99+
    2023-04-21
    win10
  • 如何解决Vue中数组和对象更改后视图不刷新的问题
    这篇文章主要为大家展示了“如何解决Vue中数组和对象更改后视图不刷新的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决Vue中数组和对象更改后视图不刷...
    99+
    2024-04-02
  • react刷新找不到页面如何解决
    这篇文章主要讲解了“react刷新找不到页面如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react刷新找不到页面如何解决”吧!react刷新找不到页面的解决办法:1、找到并打开“a...
    99+
    2023-07-04
  • react路由页面不刷新如何解决
    这篇文章主要介绍“react路由页面不刷新如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react路由页面不刷新如何解决”文章能帮助大家解决问题。react路由页面不刷新的解决办法:1、在“...
    99+
    2023-07-04
  • react路由跳转不刷新如何解决
    这篇文章主要介绍了react路由跳转不刷新如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react路由跳转不刷新如何解决文章都会有所收获,下面我们一起来看看吧。react路由跳转不刷新的解决办法:1、在...
    99+
    2023-07-05
  • win7更新35%不动如何解决
    今天小编给大家分享一下win7更新35%不动如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win7配置更新到35%卡...
    99+
    2023-07-01
  • 怎么设置sql视图不可更新
    在SQL中,可以通过以下方法设置视图为不可更新的: 使用WITH READ ONLY语句:在创建视图时,可以使用WITH READ...
    99+
    2024-04-09
    sql
  • react图片引入不显示如何解决
    本文小编为大家详细介绍“react图片引入不显示如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“react图片引入不显示如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。react图片引入不显示的解决...
    99+
    2023-07-04
  • react路由返回时不刷新如何解决
    这篇文章主要介绍“react路由返回时不刷新如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react路由返回时不刷新如何解决”文章能帮助大家解决问题。react路由返回时不刷新的解决办法:1...
    99+
    2023-07-04
  • vuex更新视图引发的问题怎么解决
    本篇内容主要讲解“vuex更新视图引发的问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vuex更新视图引发的问题怎么解决”吧!场景第一次进入页面加载数据,数据不显示,点击某个按钮或者...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作