美文网首页
React数据更新,视图不更新

React数据更新,视图不更新

作者: CoderZb | 来源:发表于2021-12-23 21:59 被阅读0次

问题描述:

做日历功能的时候,发现了一个问题:切换月份发现数据更新,但是视图不更新

  • 第一次打开日历,正常显示,没有问题


    image.png
  • 切换月份,页面变空白


    image.png
[
  {
    
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 1
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 2
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 3
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 4
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 5
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 6
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 7
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 8
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 9
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 10
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 11
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 12
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 13
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 14
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 15
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 16
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 17
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 18
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 19
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 20
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 21
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 22
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 23
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 24
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 25
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 26
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 27
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 0,
    "num": 28
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 1638115200000,
    "num": 29,
    "price": 2443,
    "priceRMB": "¥2443"
  },
  {
    "year": 2021,
    "month": 11,
    "saleDate": 1638201600000,
    "num": 30,
    "price": 2443,
    "priceRMB": "¥2443"
  }
]

问题代码:

this.setState({
      dayList:this.state.dayList
},()=>{
      console.log('更改数据为B----',JSON.stringify(this.state.dayList));
})

解决办法:使用es6的扩展运算符拷贝dayList

this.setState({
      dayList:[...this.state.dayList]
},()=>{
      console.log('更改数据为B----',JSON.stringify(this.state.dayList));
})

JS中的深拷贝和浅拷贝

相关文章

  • React数据更新,视图不更新

    问题描述: 做日历功能的时候,发现了一个问题:切换月份发现数据更新,但是视图不更新 第一次打开日历,正常显示,没有...

  • 虚拟DOM

    实现react中render的几种方案(数据更新视图) 方案一: state 数据 JSX 模板 数据 + 模板 ...

  • redux 视图不更新 数据已更新

    文件1:index.js 2 子组件 3 reducer 页面效果: 0 times组件值未更新。。。 现已解决:...

  • React中的setState简析

    React中数据的更新操作 这里以更新数组为例说明React中数据应该如何更新 React中更新数组必须生成一个新...

  • React Redux Redux-observable 备忘

    要说Redux,我们先得来讨论一下只用React会造成什么问题? React React 更新视图的方法是更新组件...

  • React Native之React整理(一)

    概述 当数据改变时,React将高效的更新和渲染需要更新的组件。声明性视图使你的代码更可预测,更容易调试。 构建封...

  • Vue2 数据双向绑定原理解析-简易版(个人笔记)

    一、什么是 MVVM 数据双向绑定 MVVM 数据双向绑定主要是指:数据变化更新视图,视图变化更新数据,如下图所示...

  • 小程序实现双向绑定

    我们知道vue是双向绑定的前端框架,视图数据的更新,data就会更新;data更新,视图就会更新;这种双向绑定在小...

  • React 更新视图过程

    说在前面,着重梳理实际更新组件和 dom 部分的代码,但是关于异步,transaction,批量合并新状态等新细节...

  • Vue.$nextTick用法

    vue是数据驱动视图更新,但vue数据变化后,视图不会立即更新,而是异步的过程.具体的更新时机参考主队列,异步队列...

网友评论

      本文标题:React数据更新,视图不更新

      本文链接:https://www.haomeiwen.com/subject/duuefrtx.html