关于react const声明变量引用this.state,然后setState不刷新问题

mdzz、、const声明的变量保持原引用。

this。setState会发现引用没有改变更改内部属性不会触发更新。

let picList: any = this.state.resumeImages;

picList = JSON.parse(JSON.stringify(picList))

if (picList[index]) {

picList[index].src = key;

} else {

picList.push({ src: key })

}

this.setState({

resumeImages: picList

})通过方法深拷贝一次就可以了。

这里推荐JSON.parse(JSON.stringify(picList))深拷贝,简单便捷

原文地址:https://www.cnblogs.com/unreal-feather/p/10333548.html

时间: 2024-11-08 03:30:23

关于react const声明变量引用this.state,然后setState不刷新问题的相关文章

let var 和const声明变量,之间的区别是什么

let 和 const 是es6 新出来的语法 1,let 是块级作用域,函数内部使用let 定义后,对函数外部无影响,如果不初始化输出的话,会报语法错误 1 let c = 3; 2 console.log('函数外let定义c:' + c);//输出c=3 3 function change(){ 4 let c = 6; 5 console.log('函数内let定义c:' + c);//输出c=6 6 } 7 change(); 8 console.log('函数调用后let定义c不受函

var,let,const声明变量?

var 与 let 的区别? 1.var支持变量预检测,let不支持 console.log(a); // undefined 程序不会报错 var a = 1; console.log(b); //程序报错 b is not defined let b = 2; 2.let 不支持重复声明 var a = 1; var a = 10; console.log(a); // 10 let b = 2; let b = 200; console.log(b); //程序报错 Identifier

C++ const引用、临时变量 引用参数

C++引用-临时变量.引用参数和const引用 如果实参与引用参数不匹配,C++将生成临时变量.如果引用参数是const,则编译器在下面两种情况下生成临时变量: 实参类型是正确的,但不是左值 实参类型不正确,但可以转换为正确的类型 左值参数是可被引用的数据对象,例如,变量.数组元素.结构成员.引用和被解除引用的指针都是左值,非左值包括字面常量和包含多项式的表达式.定义一个函数 Double refcube(const double& ra) { Returnra*ra*ra; } double

JavaScript中var变量引用function与直接声明function

今天在h5开发app的过程中遇到了一个js问题,function的执行问题 在js中声明函数function有这两种方法 var A=function(){...} 或者 function A(){...} 第一种称之为变量引用函数,因为js允许函数作为一个值传递给变量,第二种是直接声明式函数 一直以为这两种没什么区别,然而,今天在使用过程中发现,当我使用第一种方式声明function的时候,如果如下这样: document.getElementById("xx").addEventL

函数定义、函数声明、函数调用以及extern跨文件的变量引用

1.如果没有定义,只有声明和调用:编译时会报连接错误.undefined reference to `func_in_a'2.如果没有声明,只有定义和调用:编译时一般会报警告,极少数情况下不会报警告.但是最好加上声明.3.如果没有调用,只有定义和声明:编译时一般会报警告(有一个函数没有使用),有时不会报警告.这时候程序执行不会出错,只是你白白的写了几个函数,而没有使用浪费掉了而已. 实验:在一个项目的两个.c文件中,分别定义一个名字相同的函数,结果?编译报错 multiple definitio

es6 - 一共有 6 种声明变量的方法(var, function, let, const, class, import)

let声明的变量只在它所在的代码块有效. 不存在变量提升 let不允许在相同作用域内,重复声明同一个变量 暂时性死区,只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响, 定义之前不能使用. 应该避免在块级作用域内声明函数.如果确实需要,也应该写成函数表达式,而不是函数声明语句. for循环的计数器,就很合适使用let命令. for (let i = 0; i < 10; i++) {let i = 'abc';} // 变量i是let声明的,当

httprunner学习4-variables变量声明与引用

前言 在 HttpRunner 中,支持变量声明(variables)和引用($var)的机制.在 config 和 test 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通过 $ + 变量名称 的方式引用变量. 区别在于,在 config 中定义的变量为全局的,整个测试用例(testcase)的所有地方均可以引用:在 test 中定义的变量作用域仅局限于当前测试步骤(teststep) 局部变量 在登录案例中,账号和密码是写死的,一般写用例的时候,我们最好把这种可能会

ES6基础之const声明

问题 今天在分析React教程时,观察到如下代码: class Board extends React.Component { constructor(props) { super(props); this.state = { squares: Array(9).fill(null), }; } handleClick(i) { const squares = this.state.squares.slice(); squares[i] = 'X'; this.setState({squares

React基础篇(2) -- state&amp;props&amp;refs

内容简介 state props refs 行内样式及动态类名 state 基本介绍 React 把组件看成是一个状态机(State Machines).通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致. React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM). 初始化状态: constructor() { super() this.state = { stateName1 : stateValue1, stateNam