广告
返回顶部
首页 > 资讯 > 精选 >react改变数组页面没有刷新如何解决
  • 166
分享到

react改变数组页面没有刷新如何解决

2023-07-05 00:07:57 166人浏览 独家记忆
摘要

本篇内容主要讲解“React改变数组页面没有刷新如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react改变数组页面没有刷新如何解决”吧!react改变数组页面没有刷新是因为数组的赋值是

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

react改变数组页面没有刷新是因为数组的赋值是引用传递的,其解决办法:1、打开相应的文件;2、找到“data.push(obj)”;3、使用新数组“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/348638.html(转载时请注明来源链接)

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

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

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

下载Word文档
猜你喜欢
  • react改变数组页面没有刷新如何解决
    本篇内容主要讲解“react改变数组页面没有刷新如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react改变数组页面没有刷新如何解决”吧!react改变数组页面没有刷新是因为数组的赋值是...
    99+
    2023-07-05
  • react跳转后路由变了页面没刷新如何解决
    这篇文章主要介绍“react跳转后路由变了页面没刷新如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react跳转后路由变了页面没刷新如何解决”文章能帮助大家解决问题。问题这样的问题貌似原因还...
    99+
    2023-07-05
  • react跳转后路由变了页面没刷新的解决
    目录问题解决方案总结问题 这样的问题貌似原因还挺多的,我的问题是带参数的url不能刷新,router 5.0版本 ,使用withRouter关联组件进行页面跳转 如下所示 路由代码...
    99+
    2023-03-11
    react跳转 react路由变 react页面没刷新
  • react 跳转后路由变了页面没刷新的解决方案
    目录问题解决方案问题 这样的问题貌似原因还挺多的,我的问题是带参数的url不能刷新,router 5.0版本 ,使用withRouter关联组件进行页面跳转 如下所示 路由代码...
    99+
    2022-11-12
  • react纯函数组件setState更新页面不刷新的解决
    目录问题描述: 原因分析: 解决方案: 补:react中,hooks钩子时useState更新不渲染组件的问题问题描述: const [textList, setTextLis...
    99+
    2022-11-12
  • react刷新找不到页面如何解决
    这篇文章主要讲解了“react刷新找不到页面如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react刷新找不到页面如何解决”吧!react刷新找不到页面的解决办法:1、找到并打开“a...
    99+
    2023-07-04
  • react路由页面不刷新如何解决
    这篇文章主要介绍“react路由页面不刷新如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react路由页面不刷新如何解决”文章能帮助大家解决问题。react路由页面不刷新的解决办法:1、在“...
    99+
    2023-07-04
  • React中路由参数如何改变页面不刷新数据的情况
    目录React路由参数改变页面不刷新数据的情况React页面路由前端路由和后端路由前端路由介绍匹配模式路由的执行过程hash模式history模式react-router-dom A...
    99+
    2022-11-13
    React路由参数 React页面不刷新数据 React路由
  • 如何解决react-router browserHistory刷新页面404问题
    这篇文章主要介绍如何解决react-router browserHistory刷新页面404问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景使用webpack-dev-serv...
    99+
    2022-10-19
  • react页面传值刷新后值消失如何解决
    今天小编给大家分享一下react页面传值刷新后值消失如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。react页面传值...
    99+
    2023-07-04
  • react数组变化不更新如何解决
    本文小编为大家详细介绍“react数组变化不更新如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“react数组变化不更新如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。react数组变化不更新是因为...
    99+
    2023-07-04
  • 如何解决IE11 vue+webpack项目中数据更新后页面没有刷新的问题
    这篇文章主要介绍如何解决IE11 vue+webpack项目中数据更新后页面没有刷新的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue +webpack 项目中数据更新后页面...
    99+
    2022-10-19
  • 如何解决vue路由变化页面数据不刷新的问题
    这篇文章给大家分享的是有关如何解决vue路由变化页面数据不刷新的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。每天记录一点点,把我遇到的问题记录下来, 希望可以帮助到更多和我...
    99+
    2022-10-19
  • 如何解决页面刷新vuex数据消失的问题
    这篇文章主要为大家展示了“如何解决页面刷新vuex数据消失的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决页面刷新vuex数据消失的问题”这篇文章吧...
    99+
    2022-10-19
  • 如何解决刷新页面vuex数据不消失和不跳转页面的问题
    小编给大家分享一下如何解决刷新页面vuex数据不消失和不跳转页面的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先说点什么v...
    99+
    2022-10-19
  • 使用vue router路由传参刷新页面参数丢失如何解决
    本篇文章为大家展示了使用vue router路由传参刷新页面参数丢失如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。方法一:通过 params 传参路由配置如下:{  &n...
    99+
    2023-06-15
  • vue修改数据页面不重新渲染问题如何解决
    本文小编为大家详细介绍“vue修改数据页面不重新渲染问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue修改数据页面不重新渲染问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue渲染机制...
    99+
    2023-07-05
  • 如何解决Vue中数组和对象更改后视图不刷新的问题
    这篇文章主要为大家展示了“如何解决Vue中数组和对象更改后视图不刷新的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决Vue中数组和对象更改后视图不刷...
    99+
    2022-10-19
  • vue更改数组属性在页面中不生效如何解决
    这篇文章主要介绍“vue更改数组属性在页面中不生效如何解决”,在日常操作中,相信很多人在vue更改数组属性在页面中不生效如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue更改数组属性在页面中不生效如...
    99+
    2023-07-04
  • 如何使用sessionStorage解决vuex在页面刷新后数据被清除的问题
    这篇文章主要介绍如何使用sessionStorage解决vuex在页面刷新后数据被清除的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.原因2.解决方法localStorage...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作