React之低版本chrome setState loading2次状态出现的bug草稿
# 前言
需求是这样的, RadioGroup 每次切换,要去请求数据并填充 Table
然后 Table 加了 loding 状态,切换时 设置 true,拿到数据时设置 false
this.setState({loading:true})
let data = await getList()
this.setState({
loading:false,
data:data
})
1
2
3
4
5
6
2
3
4
5
6
结果快速切换 RadioGroup 时 多个 RadioButton 都变成 check 样式
控件用的 antd
chrome 59 出现,高版本不会出现
# 原因分析
Promise.prototype.finally chrome63 才支持 不知道会不会有关系,试一下。。
目前没有找到原因
# 解决方案
this.setState({loading:true})
let data = await getList()
this.setState({
data:data
})
setTimeout(()=>{
this.setState({
loading:false,
})
},0)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56