web前端全系列 教程
1839个小节阅读:2243.7k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
更改state,不要直接修改 state
xxxxxxxxxx
this.state.date=new Date()
//这样的代码是不会生效的
提示:
只有使用setState页面才会重新渲染。
使用setState
去更新state
setState
是异步的
xxxxxxxxxx
this.setState({ date: new Date() })
//上面setState之后,下面的代码是没法获取到更新后的state的
console.log(this.state.date.toLocaleTimeString())
解决方案,直接给setState传递回调函数。
xxxxxxxxxx
this.setState({ date: new Date() },(state)=>{
console.log(state.date.toLocaleTimeString())
})
或者
xxxxxxxxxx
this.setState({ date: new Date() })
this.setState((state)=>{
console.log(state.date.toLocaleTimeString())
})
setState
会合并state
当你调用 setState()
的时候,React 会把你提供的对象合并到当前的 state。
xxxxxxxxxx
constructor() {
super();
this.state = { date: new Date(),title:'今天的天气真不错' };
}
onChange = () => {
this.setState({ date: new Date() })
//在这里直接设置为{date:new Date},则与原来的{date:new Date,title:'今天的天气很不错合并'},不会直接干掉title属性,只会替换date属性的值
}
实时效果反馈
1. 下列关于setState描述错误的是:
A setState
是异步更新数据的
B setState
更新的state会合并
C setState
不会引起页面的重新渲染
D setState
可以传递回调函数获取最新的state值
答案
1=>C