首页 > 其他 > 详细

只更新state中对象中的某一项值,setState中的回调

时间:2020-06-05 10:03:45      阅读:52      评论:0      收藏:0      [点我收藏+]

只更新state中对象中的某一项值

要用到Object.assign()方法
例子:

this.state = {
count: [
    { num: 0, title: "用户总数", background: "#66ef66" },
    { num: 0, title: "商品总数", background: "#f9cb4a" },
    { num: 0, title: "订单总数", background: "#f93232" }
]
}

想要更新count数组每一项中第一个对象中的num值

this.setState({
    count:[
              Object.assign({},this.state.count[0],{num:1}),
              Object.assign({},this.state.count[1],{num:2}),
              Object.assign({},this.state.count[2],{num:3})
    ]
})

setState中的回调

问题:

由于有时候setState是异步操作的,这就导致了,setState时获取state值时有可能还没更新。
例子:

this.state ={value:1}
this.setState({
    value: 2
})
console.log(this.state.value)  // 1

解决方案

setState的参数:setState(updater, [callback])
用setState的回调方法。

this.state ={value:1}
this.setState({
    value: 2
}, () => {
    console.log(this.state.value) //2
})

想看更多博客,请到本 博客

只更新state中对象中的某一项值,setState中的回调

原文:https://www.cnblogs.com/blogwxb/p/13047595.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!